Skip to content

A Full-Stack Online Volunteering Portal with Role-Based Dashboards, Real-Time Signups, and AWS Deployment

Notifications You must be signed in to change notification settings

notgautham/VolunTree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 

Repository files navigation

VolunTree

Your Gateway to Seamless Volunteering — Connecting Hosts & Volunteers in Real-Time


🌱 In a world where volunteering opportunities are scattered and hard to manage, VolunTree bridges the gap between communities and causes.

VolunTree is a full-stack online volunteering platform designed to make event creation, volunteer registration, and opportunity management simple and secure.
With dedicated portals for Hosts and Volunteers, it streamlines the process from posting events to tracking participation, backed by AWS-powered infrastructure for scalability and reliability.

Whether you're hosting an initiative or looking to contribute your time, VolunTree makes it easy to connect and make an impact.

🔧 Key Features

  • 👥 Dual-Role Platform

    • Separate authentication and dashboards for Volunteers and Hosts
    • Role-based access control using JWT tokens
  • 📅 Opportunity Management

    • Hosts can create, update, and delete opportunities
    • View registered volunteers with full profile details
  • Real-Time Volunteer Signups

    • Volunteers can browse upcoming opportunities and sign up instantly
    • “My Events” page for tracking registered opportunities
    • Unregister option with confirmation
  • 📊 Database Schema Overview

    • volunteers – personal details, contact info, demographics
    • hosts – organization name, contact details, description, website
    • opportunities – host reference, title, description, date, location, requirements (JSON)
    • volunteer_signups – volunteer-opportunity mapping table
  • ☁️ AWS-Powered Deployment

    • Backend on EC2
    • Frontend on S3 + CloudFront
    • RDS PostgreSQL for secure, scalable storage
    • Infrastructure as Code using Terraform
  • 🛡️ Security

    • JWT-based authentication
    • Secure password hashing with bcrypt
    • AWS Security Groups for controlled network access

⚙️ Built With

💻 Frontend

React Vite Styled Components

🧠 Backend

Node.js Express.js

🗄️ Database

PostgreSQL

☁️ Cloud & DevOps

AWS EC2 AWS S3 AWS CloudFront AWS RDS Terraform

🧩 Tools & Integrations

GitHub Actions JWT bcrypt

🖼️ Screenshots

Screenshot 1    Screenshot 2

Screenshot 3    Screenshot 4

Screenshot 5    Screenshot 6

🎥 Demo: Login as a Host, create an opportunity, view volunteer signups; Login as a Volunteer, browse opportunities, sign up, and track participation.

🚀 Deployment & CI/CD

  • Infrastructure: Provisioned using Terraform for reproducibility and version control
  • Frontend Deployment: React + Vite build uploaded to S3, distributed via CloudFront
  • Backend Deployment: Node.js + Express API hosted on EC2 with PM2 process management
  • Database: Managed RDS PostgreSQL with public access disabled and SG rules configured
  • CI/CD:
    • GitHub Actions for automated builds and deployments
    • Workflow: Install → Lint → Build → Deploy frontend & backend
    • Branch strategy: main (production), dev (staging), feature/* (new features)

🔐 Security & Compliance

  • 🔒 Auth & Sessions

    • JWT (HS256) with 1‑hour expiry; short‑lived tokens reduce risk
    • Role-based guards on every protected route (Host vs Volunteer)
  • 🧂 Password Safety

    • bcrypt hashing with per-user salts
    • No plaintext storage, ever
  • 🧰 API Hardening

    • Input validation & sanitization on all write paths
    • CORS restricted to trusted origins
    • Sensible rate limiting & error normalization
  • 🔑 Secrets & Config

    • .env for local; AWS Secrets Manager/SSM for cloud
    • Zero secrets in code or CI logs
  • 🗄️ Data Protection

    • RDS automated backups & point‑in‑time restore
    • Least‑privilege DB user; parameterized queries to prevent SQLi
  • 📜 Compliance Readiness

    • Data minimization (only required PII)
    • Clear consent for contact and future notifications
    • Audit logs for auth and critical actions (create/delete opportunity)

About

A Full-Stack Online Volunteering Portal with Role-Based Dashboards, Real-Time Signups, and AWS Deployment

Topics

Resources

Stars

Watchers

Forks

Languages