Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
51ce063
feat: add ColPali reranker implementation with Qdrant binary quantiza…
athrael-soju Jul 22, 2025
da9c42d
feat: add ColPali and ColQwen2 PDF retrieval implementation with vect…
athrael-soju Jul 22, 2025
0b0540d
feat: implement ColNomic server-client architecture for efficient mod…
athrael-soju Jul 22, 2025
d24d4ea
feat: add ColNomic model server with image and query embedding endpoints
athrael-soju Jul 22, 2025
1fa9199
feat: add nomic AI image embedding and vector search implementation w…
athrael-soju Jul 22, 2025
a41d5b8
feat: implement ColPali image search with Qwen2.5 model and Qdrant ve…
athrael-soju Jul 23, 2025
ba6b33a
feat: add nomic image embedding with UFO dataset integration
athrael-soju Jul 23, 2025
cac6b44
Add vector padding to allow batch processing
athrael-soju Jul 23, 2025
0cacfa7
feat: initialize FastAPI backend with ColPali integration and OpenAPI…
athrael-soju Jul 23, 2025
04112e3
chore: initialize project with Python dependencies and Docker config
athrael-soju Jul 23, 2025
9955165
No changes detected in the provided diff - please share the code chan…
athrael-soju Jul 23, 2025
06db935
feat: initialize Next.js frontend with authentication, UI components …
athrael-soju Jul 23, 2025
3225ff0
feat: initialize Next.js frontend with app router, TailwindCSS and au…
athrael-soju Jul 23, 2025
4605d85
feat: initialize NextJS frontend with UI components and dashboard layout
athrael-soju Jul 23, 2025
219a0f3
feat: initialize Next.js frontend with UI dependencies and build scripts
athrael-soju Jul 23, 2025
2fde636
feat: implement login page with API client integration for authentica…
athrael-soju Jul 23, 2025
abb453e
feat: add dashboard pages and colpali search interface with sidebar n…
athrael-soju Jul 24, 2025
cea6de0
feat: add admin, items, and settings pages with CRUD functionality
athrael-soju Jul 24, 2025
386c568
feat: add admin dashboard with user management and app sidebar naviga…
athrael-soju Jul 24, 2025
30a611b
feat: implement login page and dashboard layout with authentication
athrael-soju Jul 24, 2025
334ca48
feat: add dashboard layout components with theme toggle and navigatio…
athrael-soju Jul 24, 2025
9b03c45
feat: add NextJS frontend with dashboard and API client generation
athrael-soju Jul 24, 2025
20197a2
chore: update dependencies and environment variables for initial setup
athrael-soju Jul 24, 2025
4e0ba01
feat: initialize project with FastAPI backend and Next.js frontend setup
athrael-soju Jul 24, 2025
765abb0
chore: update env credentials and add Next.js frontend with dependencies
athrael-soju Jul 24, 2025
a9be7be
feat: initialize project with backend dependencies and frontend packa…
athrael-soju Jul 24, 2025
f021b39
chore: update environment variables and add NextJS frontend package c…
athrael-soju Jul 24, 2025
0d9264e
feat: add OpenAPI client generation with TypeScript SDK
athrael-soju Jul 24, 2025
91bf9fc
feat: add GitHub labeler config and update environment variables with…
athrael-soju Jul 24, 2025
121d3d7
feat: add config module with environment settings and validation
athrael-soju Jul 24, 2025
6fae618
feat: add backend config module and update environment variables with…
athrael-soju Jul 24, 2025
9e40ac1
feat: initialize Next.js frontend with dependencies and configure env…
athrael-soju Jul 24, 2025
b54732e
ci: add GitHub workflow to auto-generate frontend client and update e…
athrael-soju Jul 24, 2025
ea0f03c
chore: add env files and OpenAPI TypeScript config with updated crede…
athrael-soju Jul 24, 2025
4d59428
feat: add OpenAPI client for frontend API integration
athrael-soju Jul 24, 2025
6deb05f
feat: generate OpenAPI TypeScript client for Next.js frontend
athrael-soju Jul 24, 2025
fdabf06
chore: update environment variables with default secrets and add back…
athrael-soju Jul 24, 2025
947df99
fix: correct volume indentation and update environment variables with…
athrael-soju Jul 24, 2025
01204ca
fix: correct volume indentation and update environment variables in d…
athrael-soju Jul 24, 2025
4946b7f
chore: update environment variables and add backend .env file
athrael-soju Jul 24, 2025
f0f4796
chore: update environment config and remove redundant env file reference
athrael-soju Jul 24, 2025
aea0960
feat: initialize Next.js frontend with dependencies and update enviro…
athrael-soju Jul 24, 2025
010419f
feat: initialize Next.js frontend with package setup and environment …
athrael-soju Jul 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ PROJECT_NAME="Full Stack FastAPI Project"
STACK_NAME=full-stack-fastapi-project

# Backend
BACKEND_CORS_ORIGINS="http://localhost,http://localhost:5173,https://localhost,https://localhost:5173,http://localhost.tiangolo.com"
BACKEND_CORS_ORIGINS="http://localhost,http://localhost:5173,https://localhost,https://localhost:5173,http://localhost.tiangolo.com,http://localhost:3000"
SECRET_KEY=changethis
[email protected]
FIRST_SUPERUSER_PASSWORD=changethis
Expand All @@ -43,3 +43,6 @@ SENTRY_DSN=
# Configure these with your own Docker registry images
DOCKER_IMAGE_BACKEND=backend
DOCKER_IMAGE_FRONTEND=frontend
DOCKER_IMAGE_FRONTEND_NEXTJS=frontend-nextjs
NEXTAUTH_SECRET=123
NEXT_PUBLIC_API_URL=http://localhost:8000
2 changes: 2 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ docs:
- '**/*.md'
- all-globs-to-all-files:
- '!frontend/**'
- '!frontend-nextjs/**'
- '!backend/**'
- '!.github/**'
- '!scripts/**'
Expand All @@ -22,4 +23,5 @@ internal:
- all-globs-to-all-files:
- '!./**/*.md'
- '!frontend/**'
- '!frontend-nextjs/**'
- '!backend/**'
6 changes: 5 additions & 1 deletion .github/workflows/generate-client.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,12 @@ jobs:
with:
version: "0.4.15"
enable-cache: true
- name: Install dependencies
- name: Install frontend dependencies
run: npm ci
working-directory: frontend
- name: Install frontend-nextjs dependencies
run: npm ci
working-directory: frontend-nextjs
- run: uv sync
working-directory: backend
- run: uv run bash scripts/generate-client.sh
Expand All @@ -47,6 +50,7 @@ jobs:
git config --local user.email "[email protected]"
git config --local user.name "github-actions"
git add frontend/src/client
git add frontend-nextjs/src/client
# Same repo PRs
- name: Push changes
if: ( github.event_name != 'pull_request' || github.secret_source == 'Actions' )
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ node_modules/
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
/playwright/.cache/
3 changes: 1 addition & 2 deletions backend/app/core/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
BeforeValidator,
EmailStr,
HttpUrl,
PostgresDsn,
computed_field,
model_validator,
)
Expand Down Expand Up @@ -59,7 +58,7 @@ def all_cors_origins(self) -> list[str]:

@computed_field # type: ignore[prop-decorator]
@property
def SQLALCHEMY_DATABASE_URI(self) -> PostgresDsn:
def SQLALCHEMY_DATABASE_URI(self) -> MultiHostUrl:
return MultiHostUrl.build(
scheme="postgresql+psycopg",
username=self.POSTGRES_USER,
Expand Down
12 changes: 6 additions & 6 deletions backend/app/tests/scripts/test_backend_pre_start.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ def test_init_successful_connection() -> None:
except Exception:
connection_successful = False

assert (
connection_successful
), "The database connection should be successful and not raise an exception."
assert connection_successful, (
"The database connection should be successful and not raise an exception."
)

assert session_mock.exec.called_once_with(
select(1)
), "The session should execute a select statement once."
assert session_mock.exec.called_once_with(select(1)), (
"The session should execute a select statement once."
)
12 changes: 6 additions & 6 deletions backend/app/tests/scripts/test_test_pre_start.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ def test_init_successful_connection() -> None:
except Exception:
connection_successful = False

assert (
connection_successful
), "The database connection should be successful and not raise an exception."
assert connection_successful, (
"The database connection should be successful and not raise an exception."
)

assert session_mock.exec.called_once_with(
select(1)
), "The session should execute a select statement once."
assert session_mock.exec.called_once_with(select(1)), (
"The session should execute a select statement once."
)
1,898 changes: 1,032 additions & 866 deletions backend/uv.lock

Large diffs are not rendered by default.

12 changes: 12 additions & 0 deletions docker-compose.override.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,18 @@ services:
- VITE_API_URL=http://localhost:8000
- NODE_ENV=development

frontend-nextjs:
profiles: [ "nextjs" ]
restart: "no"
ports:
- "3000:80"
build:
context: ./frontend-nextjs
args:
- NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL?Variable not set}
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET?Variable not set}
- NODE_ENV=development

playwright:
build:
context: ./frontend
Expand Down
35 changes: 33 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ services:
image: postgres:17
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}" ]
interval: 10s
retries: 5
start_period: 30s
Expand Down Expand Up @@ -109,7 +109,7 @@ services:
- SENTRY_DSN=${SENTRY_DSN}

healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/v1/utils/health-check/"]
test: [ "CMD", "curl", "-f", "http://localhost:8000/api/v1/utils/health-check/" ]
interval: 10s
timeout: 5s
retries: 5
Expand Down Expand Up @@ -162,6 +162,37 @@ services:

# Enable redirection for HTTP and HTTPS
- traefik.http.routers.${STACK_NAME?Variable not set}-frontend-http.middlewares=https-redirect

frontend-nextjs:
profiles: [ "nextjs" ]
image: '${DOCKER_IMAGE_FRONTEND_NEXTJS?Variable not set}:${TAG-latest}'
restart: always
networks:
- traefik-public
- default
build:
context: ./frontend-nextjs
args:
- NEXT_PUBLIC_API_URL=https://api.${DOMAIN?Variable not set}
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET?Variable not set}
- NODE_ENV=production
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public

- traefik.http.services.${STACK_NAME?Variable not set}-frontend-nextjs.loadbalancer.server.port=80

- traefik.http.routers.${STACK_NAME?Variable not set}-frontend-nextjs-http.rule=Host(`dashboard.${DOMAIN?Variable not set}`)
- traefik.http.routers.${STACK_NAME?Variable not set}-frontend-nextjs-http.entrypoints=http

- traefik.http.routers.${STACK_NAME?Variable not set}-frontend-nextjs-https.rule=Host(`dashboard.${DOMAIN?Variable not set}`)
- traefik.http.routers.${STACK_NAME?Variable not set}-frontend-nextjs-https.entrypoints=https
- traefik.http.routers.${STACK_NAME?Variable not set}-frontend-nextjs-https.tls=true
- traefik.http.routers.${STACK_NAME?Variable not set}-frontend-nextjs-https.tls.certresolver=le

# Enable redirection for HTTP and HTTPS
- traefik.http.routers.${STACK_NAME?Variable not set}-frontend-nextjs-http.middlewares=https-redirect
volumes:
app-db-data:

Expand Down
41 changes: 41 additions & 0 deletions frontend-nextjs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
Loading
Loading