Merge branch 'dev' into feat/editor-and-misc-updates

This commit is contained in:
Badr B. 2024-10-10 21:17:57 +02:00 committed by GitHub
commit 1f35dfdd93
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 1342 additions and 1159 deletions

36
apps/api/poetry.lock generated
View file

@ -484,13 +484,13 @@ numpy = "*"
[[package]] [[package]]
name = "chromadb" name = "chromadb"
version = "0.5.5" version = "0.5.11"
description = "Chroma." description = "Chroma."
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "chromadb-0.5.5-py3-none-any.whl", hash = "sha256:2a5a4b84cb0fc32b380e193be68cdbadf3d9f77dbbf141649be9886e42910ddd"}, {file = "chromadb-0.5.11-py3-none-any.whl", hash = "sha256:f02d9326869cea926f980bd6c9a0150a0ef2e151072f325998c16a9502fb4b25"},
{file = "chromadb-0.5.5.tar.gz", hash = "sha256:84f4bfee320fb4912cbeb4d738f01690891e9894f0ba81f39ee02867102a1c4d"}, {file = "chromadb-0.5.11.tar.gz", hash = "sha256:252e970b3e1a27b594cc7b3685238691bf8eaa232225d4dee9e33ec83580775f"},
] ]
[package.dependencies] [package.dependencies]
@ -503,7 +503,7 @@ httpx = ">=0.27.0"
importlib-resources = "*" importlib-resources = "*"
kubernetes = ">=28.1.0" kubernetes = ">=28.1.0"
mmh3 = ">=4.0.1" mmh3 = ">=4.0.1"
numpy = ">=1.22.5,<2.0.0" numpy = ">=1.22.5"
onnxruntime = ">=1.14.1" onnxruntime = ">=1.14.1"
opentelemetry-api = ">=1.2.0" opentelemetry-api = ">=1.2.0"
opentelemetry-exporter-otlp-proto-grpc = ">=1.2.0" opentelemetry-exporter-otlp-proto-grpc = ">=1.2.0"
@ -515,6 +515,7 @@ posthog = ">=2.4.0"
pydantic = ">=1.9" pydantic = ">=1.9"
pypika = ">=0.48.9" pypika = ">=0.48.9"
PyYAML = ">=6.0.0" PyYAML = ">=6.0.0"
rich = ">=10.11.0"
tenacity = ">=8.2.3" tenacity = ">=8.2.3"
tokenizers = ">=0.13.2" tokenizers = ">=0.13.2"
tqdm = ">=4.65.0" tqdm = ">=4.65.0"
@ -662,27 +663,28 @@ idna = ">=2.0.0"
[[package]] [[package]]
name = "faker" name = "faker"
version = "28.1.0" version = "30.1.0"
description = "Faker is a Python package that generates fake data for you." description = "Faker is a Python package that generates fake data for you."
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "Faker-28.1.0-py3-none-any.whl", hash = "sha256:b17d69312ef6485a720e21bffa997668c88876a5298b278e903ba706243c9c6b"}, {file = "Faker-30.1.0-py3-none-any.whl", hash = "sha256:dbf81295c948270a9e96cd48a9a3ebec73acac9a153d0c854fbbd0294557609f"},
{file = "faker-28.1.0.tar.gz", hash = "sha256:bc460a0e6020966410d0b276043879abca0fac51890f3324bc254bb0a383ee3a"}, {file = "faker-30.1.0.tar.gz", hash = "sha256:e0593931bd7be9a9ea984b5d8c302ef1cec19392585d1e90d444199271d0a94d"},
] ]
[package.dependencies] [package.dependencies]
python-dateutil = ">=2.4" python-dateutil = ">=2.4"
typing-extensions = "*"
[[package]] [[package]]
name = "fastapi" name = "fastapi"
version = "0.112.2" version = "0.115.0"
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "fastapi-0.112.2-py3-none-any.whl", hash = "sha256:db84b470bd0e2b1075942231e90e3577e12a903c4dc8696f0d206a7904a7af1c"}, {file = "fastapi-0.115.0-py3-none-any.whl", hash = "sha256:17ea427674467486e997206a5ab25760f6b09e069f099b96f5b55a32fb6f1631"},
{file = "fastapi-0.112.2.tar.gz", hash = "sha256:3d4729c038414d5193840706907a41839d839523da6ed0c2811f1168cac1798c"}, {file = "fastapi-0.115.0.tar.gz", hash = "sha256:f93b4ca3529a8ebc6fc3fcf710e5efa8de3df9b41570958abf1d97d843138004"},
] ]
[package.dependencies] [package.dependencies]
@ -1974,13 +1976,13 @@ sympy = "*"
[[package]] [[package]]
name = "openai" name = "openai"
version = "1.40.3" version = "1.50.2"
description = "The official Python library for the openai API" description = "The official Python library for the openai API"
optional = false optional = false
python-versions = ">=3.7.1" python-versions = ">=3.7.1"
files = [ files = [
{file = "openai-1.40.3-py3-none-any.whl", hash = "sha256:09396cb6e2e15c921a5d872bf92841a60a9425da10dcd962b45fe7c4f48f8395"}, {file = "openai-1.50.2-py3-none-any.whl", hash = "sha256:822dd2051baa3393d0d5406990611975dd6f533020dc9375a34d4fe67e8b75f7"},
{file = "openai-1.40.3.tar.gz", hash = "sha256:f2ffe907618240938c59d7ccc67dd01dc8c50be203c0077240db6758d2f02480"}, {file = "openai-1.50.2.tar.gz", hash = "sha256:3987ae027152fc8bea745d60b02c8f4c4a76e1b5c70e73565fa556db6f78c9e6"},
] ]
[package.dependencies] [package.dependencies]
@ -3372,13 +3374,13 @@ telegram = ["requests"]
[[package]] [[package]]
name = "typer" name = "typer"
version = "0.12.3" version = "0.12.5"
description = "Typer, build great CLIs. Easy to code. Based on Python type hints." description = "Typer, build great CLIs. Easy to code. Based on Python type hints."
optional = false optional = false
python-versions = ">=3.7" python-versions = ">=3.7"
files = [ files = [
{file = "typer-0.12.3-py3-none-any.whl", hash = "sha256:070d7ca53f785acbccba8e7d28b08dcd88f79f1fbda035ade0aecec71ca5c914"}, {file = "typer-0.12.5-py3-none-any.whl", hash = "sha256:62fe4e471711b147e3365034133904df3e235698399bc4de2b36c8579298d52b"},
{file = "typer-0.12.3.tar.gz", hash = "sha256:49e73131481d804288ef62598d97a1ceef3058905aa536a1134f90891ba35482"}, {file = "typer-0.12.5.tar.gz", hash = "sha256:f592f089bedcc8ec1b974125d64851029c3b1af145f04aca64d69410f0c9b722"},
] ]
[package.dependencies] [package.dependencies]
@ -3895,4 +3897,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools",
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "^3.12" python-versions = "^3.12"
content-hash = "f8b0ade0de90d5d38f602d3c7e2d28d1a0a97d352fa1aa129bc2c4e26d515fb4" content-hash = "f833ec3787697499d05e2aafb89bcb275b0d7468a6a4a33eb20cd139a21880d8"

View file

@ -12,14 +12,14 @@ version = "0.1.0"
[tool.poetry.dependencies] [tool.poetry.dependencies]
boto3 = "^1.34.79" boto3 = "^1.34.79"
botocore = "^1.34.93" botocore = "^1.34.93"
faker = "^28.1.0" faker = "^30.1.0"
fastapi = "^0.112.2" fastapi = "^0.115.0"
fastapi-jwt-auth = "^0.5.0" fastapi-jwt-auth = "^0.5.0"
httpx = "^0.27.0" httpx = "^0.27.0"
langchain = "^0.1.7" langchain = "^0.1.7"
langchain-community = "^0.0.20" langchain-community = "^0.0.20"
langchain-openai = "^0.0.6" langchain-openai = "^0.0.6"
openai = "^1.40.3" openai = "^1.50.2"
passlib = "^1.7.4" passlib = "^1.7.4"
psycopg2-binary = "^2.9.9" psycopg2-binary = "^2.9.9"
pydantic = {version = ">=1.8.0,<2.0.0", extras = ["email"]} pydantic = {version = ">=1.8.0,<2.0.0", extras = ["email"]}
@ -36,8 +36,8 @@ sentry-sdk = {extras = ["fastapi"], version = "^2.13.0"}
sqlmodel = "^0.0.19" sqlmodel = "^0.0.19"
tiktoken = "^0.7.0" tiktoken = "^0.7.0"
uvicorn = "0.30.1" uvicorn = "0.30.1"
typer = "^0.12.3" typer = "^0.12.5"
chromadb = "0.5.5" chromadb = "0.5.11"
alembic = "^1.13.2" alembic = "^1.13.2"
alembic-postgresql-enum = "^1.2.0" alembic-postgresql-enum = "^1.2.0"
sqlalchemy-utils = "^0.41.2" sqlalchemy-utils = "^0.41.2"

View file

@ -1,6 +1,6 @@
from typing import Any, List, Optional from typing import Any, List, Optional
from pydantic import BaseModel from pydantic import BaseModel
from sqlalchemy import Column, ForeignKey from sqlmodel import Column, ForeignKey, Integer
from sqlmodel import Field, SQLModel from sqlmodel import Field, SQLModel
from src.db.courses.activities import ActivityRead from src.db.courses.activities import ActivityRead
@ -10,18 +10,15 @@ class ChapterBase(SQLModel):
description: Optional[str] = "" description: Optional[str] = ""
thumbnail_image: Optional[str] = "" thumbnail_image: Optional[str] = ""
org_id: int = Field( org_id: int = Field(
sa_column=Column("org_id", ForeignKey("organization.id", ondelete="CASCADE")) sa_column=Column("org_id", Integer, ForeignKey("organization.id", ondelete="CASCADE"))
) )
course_id: int = Field( course_id: int = Field(
sa_column=Column("course_id", ForeignKey("course.id", ondelete="CASCADE")) sa_column=Column("course_id", Integer, ForeignKey("course.id", ondelete="CASCADE"))
) )
class Chapter(ChapterBase, table=True): class Chapter(ChapterBase, table=True):
id: Optional[int] = Field(default=None, primary_key=True) id: Optional[int] = Field(default=None, primary_key=True)
course_id: int = Field(
sa_column=Column("course_id", ForeignKey("course.id", ondelete="CASCADE"))
)
chapter_uuid: str = "" chapter_uuid: str = ""
creation_date: str = "" creation_date: str = ""
update_date: str = "" update_date: str = ""

View file

@ -0,0 +1,39 @@
import { ArrowRight } from 'lucide-react'
import Image from 'next/image'
import Link from 'next/link'
import learnhouseIcon from 'public/black_logo.png'
export default function NotFound() {
return (
<div className="flex min-h-screen w-full flex-col items-center justify-center
bg-[radial-gradient(ellipse_at_top,_var(--tw-gradient-stops))] from-zinc-200 to-slate-300">
<div className="nx-flex nx-items-center hover:nx-opacity-75 ltr:nx-mr-auto rtl:nx-ml-auto pb-20">
<Image quality={100}
width={270}
height={100}
src={learnhouseIcon}
alt="logo"
/>
</div>
<div className="space-y-6 text-center">
<h1 className="text-8xl leading-7 font-bold text-black drop-shadow-md">
404!
</h1>
<p className='text-lg pt-8 text-black tracking-tight font-medium leading-normal'>
We are very sorry for the inconvinience. It looks like you're trying to
<div>access a page that has been deleted or never existed before</div>
</p>
</div>
<div className='pt-8 flex flex-col items-center'>
<button className="flex w-fit h-[50px] text-xl space-x-2 bg-black px-6 py-2 text-md rounded-lg font-bold text-white items-center shadow-md">
<Link className='flex gap-2' href="/" >
Go back to homepage
<ArrowRight className='tracking-tight group-hover:translate-x-0.5
transition-transform duration-150 ease-in-out ml-1' />
</Link>
</button>
</div>
</div>
)
}

View file

@ -11,17 +11,18 @@
"lint:fix": "eslint --fix ." "lint:fix": "eslint --fix ."
}, },
"dependencies": { "dependencies": {
"@hocuspocus/provider": "^2.13.5",
"@icons-pack/react-simple-icons": "^10.0.0", "@icons-pack/react-simple-icons": "^10.0.0",
"@hocuspocus/provider": "^2.13.6",
"@radix-ui/colors": "^0.1.9", "@radix-ui/colors": "^0.1.9",
"@radix-ui/react-aspect-ratio": "^1.1.0", "@radix-ui/react-aspect-ratio": "^1.1.0",
"@radix-ui/react-dialog": "^1.1.1", "@radix-ui/react-dialog": "^1.1.2",
"@radix-ui/react-form": "^0.0.3", "@radix-ui/react-form": "^0.0.3",
"@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-icons": "^1.3.0",
"@radix-ui/react-switch": "^1.1.0", "@radix-ui/react-switch": "^1.1.1",
"@radix-ui/react-tabs": "^1.1.0", "@radix-ui/react-tabs": "^1.1.1",
"@radix-ui/react-tooltip": "^1.1.2", "@radix-ui/react-tooltip": "^1.1.3",
"@sentry/nextjs": "^8.27.0", "@sentry/nextjs": "^8.33.1",
"@sentry/utils": "^8.33.1",
"@stitches/react": "^1.2.8", "@stitches/react": "^1.2.8",
"@tiptap/core": "^2.6.6", "@tiptap/core": "^2.6.6",
"@tiptap/extension-code-block-lowlight": "^2.6.6", "@tiptap/extension-code-block-lowlight": "^2.6.6",
@ -47,11 +48,11 @@
"lowlight": "^3.1.0", "lowlight": "^3.1.0",
"lucide-react": "^0.424.0", "lucide-react": "^0.424.0",
"next": "14.2.7", "next": "14.2.7",
"next-auth": "^4.24.7", "next-auth": "^4.24.8",
"nextjs-toploader": "^1.6.12", "nextjs-toploader": "^1.6.12",
"prosemirror-state": "^1.4.3", "prosemirror-state": "^1.4.3",
"randomcolor": "^0.6.2", "randomcolor": "^0.6.2",
"re-resizable": "^6.9.17", "re-resizable": "^6.10.0",
"react": "^18.3.1", "react": "^18.3.1",
"react-beautiful-dnd": "^13.1.1", "react-beautiful-dnd": "^13.1.1",
"react-confetti": "^6.1.0", "react-confetti": "^6.1.0",
@ -61,16 +62,16 @@
"react-spinners": "^0.13.8", "react-spinners": "^0.13.8",
"react-youtube": "^10.1.0", "react-youtube": "^10.1.0",
"sharp": "^0.33.5", "sharp": "^0.33.5",
"styled-components": "^6.1.12", "styled-components": "^6.1.13",
"swr": "^2.2.5", "swr": "^2.2.5",
"tailwind-merge": "^2.5.2", "tailwind-merge": "^2.5.3",
"tailwind-scrollbar": "^3.1.0", "tailwind-scrollbar": "^3.1.0",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"uuid": "^9.0.1", "uuid": "^9.0.1",
"y-indexeddb": "^9.0.12", "y-indexeddb": "^9.0.12",
"y-prosemirror": "^1.2.12", "y-prosemirror": "^1.2.12",
"y-webrtc": "^10.3.0", "y-webrtc": "^10.3.0",
"yjs": "^13.6.18" "yjs": "^13.6.19"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "20.12.2", "@types/node": "20.12.2",
@ -82,11 +83,11 @@
"@types/styled-components": "^5.1.34", "@types/styled-components": "^5.1.34",
"@types/uuid": "^9.0.8", "@types/uuid": "^9.0.8",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.20",
"eslint": "^8.57.0", "eslint": "^8.57.1",
"eslint-config-next": "^14.2.7", "eslint-config-next": "^14.2.14",
"eslint-plugin-unused-imports": "^3.2.0", "eslint-plugin-unused-imports": "^3.2.0",
"postcss": "^8.4.41", "postcss": "^8.4.47",
"tailwindcss": "^3.4.10", "tailwindcss": "^3.4.13",
"typescript": "5.4.4" "typescript": "5.4.4"
} }
} }

2365
apps/web/pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -3,6 +3,15 @@ server {
server_name localhost; server_name localhost;
client_max_body_size 500M; client_max_body_size 500M;
# Increase header buffer size
large_client_header_buffers 4 32k;
# Increase the maximum allowed size of the client request body
client_body_buffer_size 32k;
# Increase the maximum allowed size of the client request header fields
client_header_buffer_size 32k;
# NextJS Revalidation # NextJS Revalidation
location /api/revalidate { location /api/revalidate {
proxy_pass http://localhost:8000; proxy_pass http://localhost:8000;