1.
Title: SkillBridge: A Platform to Connect Volunteers with NGOs
2. Project Statement: This project aims to create a web-based platform where skilled volunteers can
connect with NGOs for short-term or long-term volunteer opportunities. The application allows users to
register as volunteers or NGOs, enabling them to post or apply for skill-based opportunities.
Outcomes:
1. Volunteers and NGOs can sign up and create profiles.
2. NGOs can post opportunities categorized by skills.
3. Volunteers can browse, filter, and apply for these opportunities.
4. Matched users can interact via a built-in chat system.
3. Modules to be Implemented:
1. Module A: User Management
2. Module B: Opportunity Management
3. Module C: Matching & Communication
4. Week-wise Module Implementation and High-level Requirements with Output Screenshots:
Milestone 1: Weeks 1–2 - Basic User Management
● Implement user registration/login with role handling (Volunteer, NGO)
● Create user profiles for both roles
● Setup backend tables for users
Output:
• Registration/Login forms
• Profile creation formMilestone 2: Weeks 3–4 - Profile Editing and Opportunity Creation
● Enable profile editing for Volunteers and NGOs
● NGOs can create, edit, and delete opportunity posts
● Backend schema setup for opportunities
Output:
• Profile editing interface
• Opportunity creation UI
Milestone 3: Weeks 5–6 - Opportunity Browsing & Filtering
● Volunteers can browse and filter opportunities
● Implement filtering/search by skills, location, and duration
● Apply button and application submission logic
Output:
• Opportunity listing with filters
• Application form
Milestone 4: Weeks 7–8 - Matching & Messaging
● Match volunteers to opportunities by skills and location
● Real-time messaging using WebSocket
● Basic notification system for matches/messages
Output:
• Match suggestions panel
• Chat interface
Evaluation Criteria:
Milestone 1 Evaluation (Week 2):
• Completion of user registration and login with role-based access
• Creation of Volunteer and NGO profiles
• Backend database table for users created
• Code committed to version control
Milestone 2 Evaluation (Week 4):
• Dashboard creation for both roles
• NGOs able to create, update, and delete opportunities
• Backend structure for opportunities in place
• Code committed to version control
Milestone 3 Evaluation (Week 6):
• Volunteers able to browse and filter opportunities
• Filtering by skill/location works as expected
• Application submission stored and reflected in the database
• Code committed to version control
Milestone 4 Evaluation (Week 8):
• Real-time messaging enabled using WebSockets
• Notification system for new messages or match events
• Final integration testing complete
• Code tagged in version control
5. Design Database Schema
1. Users
● id: Unique identifier for the user
● name: Full name of the user
● email: User's email address (must be unique)
● password: Hashed password for secure login
● role: Defines user type – either volunteer or NGO
● skills: Array (JSON) of skills possessed by the user
● location: User's geographical location
● bio: Short biography or summary about the user
NGO-specific fields (only applicable if the role is NGO):
● organization_name: Name of the NGO
● organization_description: Detailed description of the NGO
● website_url: Website link of the organization
2. Opportunities
● id: Unique identifier for the opportunity
● ngo_id: Foreign key reference to the NGO that posted the opportunity (linked to [Link])
● title: Title or name of the opportunity
● description: Detailed information about the opportunity
● required_skills: Array (JSON) of skills required for the opportunity
● duration: Duration (e.g., "3 weeks", "10 hours/week")
● location: Location where the opportunity is based
● status: Current state of the opportunity – either open or closed (default: open)
3. Applications
● id: Unique identifier for each application
● opportunity_id: Foreign key to the opportunity applied for (linked to [Link])
● volunteer_id: Foreign key to the volunteer applying (linked to [Link])
● status: Status of the application – pending, accepted, or rejected (default: pending)
4. Messages
● id: Unique identifier for each message
● sender_id: User ID of the message sender (linked to [Link])
● receiver_id: The user ID of the message recipient (linked to [Link])
● content: Text content of the message
● timestamp: Date and time the message was sent (default: current timestamp)
Class Diagram: Entity Classes
6. Mockup’s:
Milestone 1:
Milestone 2:
Milestone 3:
Milestone 4:
Responsive Web Pages:
For Volunteer :
For NGO’s & Organisations: