A full-stack volunteer management platform designed to digitalize volunteer recruitment, opportunity management, applications, communication, and administrative workflows.
The system provides dedicated workspaces for volunteers, NGO managers, and administrators, with role-based access, application tracking, notifications, messaging, data management, and AI-assisted content generation.
- React
- TypeScript
- Vite
- Node.js
- Express
- Supabase
- PostgreSQL
- Supabase Authentication
- Row-Level Security (RLS)
- Google Gemini API
- Tailwind CSS
- Volunteer registration and authentication
- Role-based access control
- Volunteer profile management
- NGO and organization management
- Volunteer opportunity management
- Application submission and tracking
- Messaging and communication
- Notifications
- Administrative dashboard
- Activity monitoring
- Supabase database integration
- PostgreSQL database schema
- Row-Level Security
- AI-assisted volunteer success-story generation
Volunteer
│
▼
React / TypeScript UI
│
┌───────────────┴───────────────┐
│ │
▼ ▼
Node.js / Express Supabase Services
Backend Database / Authentication
│ │
└───────────────┬───────────────┘
│
▼
PostgreSQL Database
Google Gemini API
│
▼
AI-assisted content tools
## User Roles
### Volunteer
- Manage personal profile
- Browse volunteer opportunities
- Submit applications
- Track application status
- Communicate with organizations
- View notifications
### NGO Manager
- Manage organization information
- Create volunteer opportunities
- Review applications
- Manage volunteers
- Communicate with applicants
### Administrator
- Monitor platform activity
- Manage users and organizations
- Monitor applications
- Review system statistics
- Perform administrative operations
## AI Integration
The platform includes an AI-assisted success-story polishing feature using the Google Gemini API.
The Gemini API is accessed through the Node.js/Express backend. API credentials are stored using environment variables and are not included in the source code.
## Database
The project uses Supabase/PostgreSQL for application data and authentication.
The database includes entities such as:
- Users
- Organizations
- Opportunities
- Applications
- Conversations
- Messages
- Notifications
- Skills
- Languages
- Certificates
- Activity logs
Row-Level Security policies are used to control access to database records.
## Security
Sensitive environment variables are excluded from Git.
Create a local environment file from the example:
```bash
cp .env.example .env