Full-featured volunteer management platform with dual-role accounts, application workflow, real-time messaging, and star-rating review system — built on clean MVC architecture.
Volunteer organizations and potential volunteers have no unified platform for opportunity discovery, application management, and direct communication. Everything happens through disconnected emails, WhatsApp groups, and spreadsheets.
Designed as a dual-role platform — users register as either a Volunteer or an Organization. Both roles share the same auth system but see completely different dashboards and capabilities. This avoids the complexity of a single "super user" model.
The application workflow follows a state machine pattern: Browse → Apply → Pending → Approved/Rejected. Each transition is logged, and both parties can track the current state at any time.
Built on strict MVC architecture — Models (Mongoose schemas), Views (EJS templates), Controllers (Express route handlers). This separation made the codebase easy to navigate and extend as features were added iteratively.
Node.js + Express + MongoDB (MVC)
Clean separation of concerns. EJS server-side rendering for fast initial load. MongoDB for flexible document schemas.
React SPA + REST API
Overkill for the scope. Server-rendered EJS is faster to develop solo and doesn't need a separate frontend build step.
Dual-Role Account System
Application Workflow
Messaging System
Review & Rating System