Quanta
Adaptive learning workspace
An AI-assisted study app built as a Django REST API with an Expo client. It turns uploaded material into guided paths, schedules review from how well you actually recall a topic, and maps what you have learned as a memory constellation.
- Guided study paths generated from uploaded documents
- Spaced repetition scheduled from recall performance
- AI tutor and generated quizzes per topic
- Versioned REST API with pagination and an error envelope
A monorepo split into a Django REST backend and an Expo client. The backend is divided into thirteen domain apps rather than one large application, behind a single versioned API root.
- Django
- DRF
- PostgreSQL
- Expo
- React Native
- TypeScript
How it is built
A monorepo split into a Django REST backend and an Expo client. The backend is divided into thirteen domain apps rather than one large application, behind a single versioned API root.
Stack
- Django 6.0 backend
- DRF 3.17 backend
- Simple JWT backend
- drf-spectacular backend
- PostgreSQL (psycopg 3) data
- Gunicorn infra
- Expo client
- React Native client
- NativeWind client
- Zustand client
- React Query client
- Zod client
Architecture
One client, one versioned API surface, and domain apps that own their own slice of the schema.
-
Expo client
client
- Expo Router
- React Query
- Zustand
- NativeWind
-
Versioned REST API
service
- DRF
- drf-spectacular
- Accounts service
- Profiles service
- Learning service
-
Documents
service
Extracts content from uploaded PDF and Word files
- pypdf
- python-docx
- Knowledge service
- Quizzes service
- Tutor service
- Intelligence service
- Progress service
- Replay service
- Twin service
- Subscriptions service
- Dashboard service
- PostgreSQL datastore
- Anthropic and OpenAI external
Flow
- Expo client Versioned REST API HTTPS
- Versioned REST API Accounts
- Versioned REST API Profiles
- Versioned REST API Learning
- Versioned REST API Documents
- Versioned REST API Knowledge
- Versioned REST API Quizzes
- Versioned REST API Tutor
- Versioned REST API Intelligence
- Versioned REST API Progress
- Versioned REST API Replay
- Versioned REST API Twin
- Versioned REST API Subscriptions
- Versioned REST API Dashboard
- Tutor Anthropic and OpenAI
- Intelligence Anthropic and OpenAI
- Versioned REST API PostgreSQL
API
REST
- Versioned URL root with shared pagination and error envelope
- Schema and documentation generated by drf-spectacular
- GET /api/v1/health/ Health check
- GET /api/docs/ Generated API documentation
Data
PostgreSQL
- Accessed through psycopg 3
Authentication
JSON Web Tokens
- Simple JWT, with identity owned by the accounts app
Integrations
- Anthropic API Model access for the tutor and generated study material
- OpenAI API Model access for the tutor and generated study material
Testing
- Dedicated backend test package
- Separate development requirements file
Infrastructure
- Served by Gunicorn
Notable decisions
-
Split settings into base, development and production
Keeps deploy-specific configuration out of the shared base
-
One versioned API root rather than per-app URL trees
Pagination and the error envelope are defined once for every endpoint
-
Two model providers rather than one
Neither vendor is a single point of failure for the tutor