Technology Stack
Every technology in the stack was selected during an eight-month research and development window, weighed against the project's cost, timeline, and skill constraints as much as against pure technical merit.
Frontend — React
React's component model and virtual DOM made it a good fit for a UI that renders differently depending on the signed-in user's role: the same dashboard shell can mount an innovator's view, a mentor's view, or an administrator's view as distinct component trees, reusing shared building blocks like navigation and notification widgets.
Backend — Node.js and Express.js
Node's non-blocking I/O model handles concurrent API requests without a thread-per-request cost, and Express supplies a lightweight routing and middleware layer on top of it. All backend business logic — authentication, application processing, mentor allocation, notification dispatch — is implemented as Express routes and middleware.
Database — PostgreSQL
PostgreSQL was chosen for its strong support for relational constraints. Referential integrity between users, applications, mentor assignments, and progress logs is enforced at the database level, not left entirely to application code — so a bug in a controller can't silently orphan a record. Typeorm is used also for automatic creation of entries (tables) and connection.
Authentication — JSON Web Tokens
JWTs provide a compact, stateless way to represent a signed-in user's identity and role between requests. The API validates a token on every protected route and enforces role-based access control before running any handler logic, which keeps authorization checks centralized rather than scattered across the frontend.
Hosting
| Layer | Provider | Notes |
|---|---|---|
| Frontend | Vercel | Free tier, continuous deployment from GitHub |
| Backend & database | Render | Free tier, environment variables configured per-service |
Both hosting choices were driven by the project's economic feasibility constraints — see Results & Analysis for how that played out against the original budget.
Summary table
| Concern | Choice |
|---|---|
| UI framework | React.js |
| Server runtime | Node.js |
| API framework | Express.js |
| Database | PostgreSQL |
| Auth | JWT + RBAC |
| Frontend hosting | Vercel |
| Backend hosting | Render |
| Testing | Jest |
| Version control | Git / GitHub |