CivicConnect is a web platform where approved NGOs post volunteering opportunities and volunteers apply, track applications, receive feedback, and download certificates after confirmed attendance.
- Node.js 18+
- MySQL 8+
- A configured
backend/.env
npm install
cd backend
node seed-feedback-test-data.js
cd ..
npm run devOpen:
http://localhost:3000
Create backend/.env from your local values:
PORT=3000
NODE_ENV=development
FRONTEND_URL=http://localhost:3000
BACKEND_URL=http://localhost:3000
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=civicconnect
JWT_SECRET=replace_me
JWT_EXPIRES_IN=1h
EMAIL_USER=your_email
CLIENT_ID=your_google_client_id
CLIENT_SECRET=your_google_client_secret
REFRESH_TOKEN=your_refresh_token
REDIRECT_URI=https://developers.google.com/oauthplayground
Never commit real secrets.
Run the migrations in order:
cd backend
mysql -u root -p civicconnect < migrations\001_admin_features.sql
mysql -u root -p civicconnect < migrations\002_saved_opportunities.sql
mysql -u root -p civicconnect < migrations\003_feedback_moderation.sql
mysql -u root -p civicconnect < migrations\004_opportunity_schedule.sql
mysql -u root -p civicconnect < migrations\005_matching_questions_moderation_certificates.sqlSeed data creates:
admin.test@civicconnect.local
ngo.cedar.test@civicconnect.local
ngo.green.test@civicconnect.local
volunteer.maya.test@civicconnect.local
volunteer.karim.test@civicconnect.local
volunteer.rana.test@civicconnect.local
Password for all:
Test12345!
npm start
npm run dev
npm run lint
npm testIntegration tests that mutate/read local seeded data are gated:
$env:RUN_INTEGRATION_TESTS='true'
npm test- NGO approval by admin
- Opportunity creation, editing, deletion
- Weekday/time scheduling with calculated volunteer hours
- Opportunity-specific applicant review
- Application accept/reject
- Attendance confirmation before or after opportunity date
- Volunteer and NGO feedback
- Admin feedback moderation with review status and reports
- Volunteer availability/preferences and opportunity match badges
- Opportunity application questions and applicant answer review
- Printable volunteer certificates with verification IDs