EngineeringTech stack

Tech stack

The complete technology inventory for NexSchool, listed per sub-project: backend (server/), admin web (admin-web/), super-admin panel (panel/), mobile app (client/), infrastructure (school-erp-infra/), CI/CD, and the developer docs site.

Backend (server/)

Flask application factory serving /api/* blueprints, SQLAlchemy 2 ORM over PostgreSQL, Celery for async jobs.

Framework & runtime

TechnologyVersionPurpose
Python3.14+Runtime
Flask3.1.2HTTP framework, application factory
GunicornWSGI production server
Flask-SQLAlchemy3.1.1ORM integration
SQLAlchemy2.0.45ORM (declarative models)
Flask-Migrate4.0.7Alembic-based DB migrations
Flask-Limiter3.5.0Rate limiting on endpoints
Flask-CORSCORS headers
Flask-MailEmail sending

Database

TechnologyVersionPurpose
PostgreSQL16Primary data store
psycopg2-binary2.9.11PostgreSQL adapter for Python
Redis7-alpineCelery broker and result backend

Authentication & security

TechnologyVersionPurpose
PyJWT2.10.1JWT access + refresh token issuance/validation
bcryptPassword hashing (cost ≥12)

Async & background tasks

TechnologyVersionPurpose
Celery5.4.0Task queue, background jobs
redis (Python)5.2.1Celery broker client

File handling & storage

TechnologyVersionPurpose
boto31.40.39AWS S3 for file storage
CloudinaryStudent document storage (CDN + transforms)
WeasyPrint68.1PDF generation (fee receipts, invoices)

Testing

TechnologyVersionPurpose
pytest8.3.5Test runner
pytest-flaskFlask test client integration

Utilities

TechnologyPurpose
python-dotenvEnv var loading
marshmallowRequest/response serialization (some modules)
psutilMemory/CPU monitoring

Admin web (admin-web/)

Next.js App Router SPA-style admin console; tenant-scoped data via TanStack Query.

Framework & runtime

TechnologyVersionPurpose
Node.js20+Runtime
Next.js16.1.6React framework (App Router)
React19.2.3UI library
TypeScript5Type safety

Styling

TechnologyVersionPurpose
Tailwind CSS4Utility-first CSS
PostCSSCSS processing

Data fetching & forms

TechnologyVersionPurpose
TanStack React Query5.90.21Server state, caching, background refetch
AxiosHTTP client
React Hook Form7.71.2Form state management
Zod4.3.6Schema validation (forms + API types)

UI components

TechnologyVersionPurpose
Radix UIAccessible headless components (Dialog, Dropdown, Tabs, Select, etc.)
SonnerToast notifications
Recharts3.8.1Charts and graphs (dashboard)
Lucide ReactIcon library
clsx / tailwind-mergeConditional class utilities

Real-time & notifications

TechnologyVersionPurpose
Firebase12.12.0Web push notifications + Firebase Auth integration
EventSource / fetchSSE stream from /api/notifications/stream

Developer tools

TechnologyPurpose
ESLintLinting
PrettierCode formatting

Super-admin panel (panel/)

Same stack as admin-web/ with these differences:

  • No Firebase integration (no push notifications for platform admins).
  • Lighter component set (fewer data tables, simpler forms).
  • Auth is platform-only (separate login endpoint).

Mobile app (client/)

Expo / React Native app with file-based routing via Expo Router.

Framework & runtime

TechnologyVersionPurpose
Expo~54.0.30React Native toolchain, OTA updates
React Native0.81.5Mobile UI framework
React19.1.0UI library
TypeScript5Type safety
Expo Router6.0.21File-based navigation
TechnologyVersionPurpose
Expo Router6.0.21File-based routing
React NavigationStack, tab, drawer navigators (under Expo Router)
React Native Gesture HandlerGesture recognition
React Native ReanimatedSmooth animations

Data fetching & forms

TechnologyVersionPurpose
TanStack React Query5.90.21Server state, caching
Zod4.3.6Schema validation

Storage & media

TechnologyPurpose
Expo Async StorageLocal persistence (tokens, settings)
Expo Document PickerPick files for upload
Expo Image PickerProfile picture selection
Expo NotificationsPush notification handling (Firebase)

Localization

TechnologyPurpose
i18nextInternationalization
react-i18nextReact bindings

Developer tools

TechnologyPurpose
EAS BuildExpo Application Services for cloud builds
MetroJavaScript bundler

Infrastructure (school-erp-infra/)

TechnologyVersionPurpose
DockerContainer runtime
Docker Composev2Multi-service orchestration
Nginx1.27-alpineReverse proxy, SSL termination, SSE routing
Let's Encrypt + CertbotTLS certificates (production)
MakeTask runner (make dev, make deploy-ecr)

CI/CD & cloud

TechnologyPurpose
GitHub ActionsCI/CD pipeline
AWS ECRPrivate Docker image registry
AWS EC2Production compute (Docker host)
AWS RDSManaged PostgreSQL
AWS IAMOIDC roles for GitHub Actions (no long-lived keys)
AWS S3File storage (boto3)
CloudinaryStudent document CDN

AI developer tooling

TechnologyPurpose
Claude CodeAI coding assistant CLI (Anthropic)
Claude Sonnet 4.6Default model for code generation
Claude Opus 4.7High-reasoning tasks (planning, architecture)
Claude Haiku 4.5Fast tasks
.claude/ configRules, memory, skills, roles for AI agents
GraphifyKnowledge graph generator for codebase exploration
Nextradeveloper-docs/ — this knowledge base

Developer docs site (developer-docs/)

This knowledge base itself. Migrated from Docusaurus to Nextra (see the repo README).

TechnologyVersionPurpose
Nextra3.xDocs theme/framework (markdown-first)
Next.js14.xUnderlying React framework (Vercel-native)
React18.xRendering
Node.js20+Build runtime