Team Members: 👩🏻💻
Sarah Abu irmeileh
Tarteel Tamimi
Our project is an online tool designed to connect people who want to volunteer their time and skills with organizations and projects that need help. It acts as a virtual bridge, making it simple for volunteers to find valuable opportunities and for organizations to efficiently manage their volunteers, and hence put the right person in the right place. This platform contributes to the humanitarian sector by improving the volunteer experience and increasing the impact of volunteer efforts.
- User Authentication and Profiles:
- Users can register and create profiles. Two primary user roles are supported: volunteers(normal, premium) and organizations.
- Volunteers provide information about their skills, interests, availability, and preferred causes or activities.
- Organizations create profiles detailing their mission, goals, and the types of volunteer opportunities they offer.
- Volunteer Opportunity Listings:
- Organizations can post volunteer opportunities, including details such as location, time commitments, required skills, and the expected impact of the volunteer work.
- Opportunities are categorized by type (place, time, skills needed…).
- Skill Matching Algorithm:
- The platform employs a sophisticated matching algorithm that pairs volunteers with opportunities based on their skills, interests, and availability.
- Volunteers can message the organization if they lack the needed skills for a specific opportunity, promoting communication and collaboration.
- Volunteers receive personalized recommendations for volunteer positions that align with their preferences.
- Feedback and Ratings:
- Both volunteers and organizations have the ability to provide feedback and ratings after each volunteer engagement.
- This system fosters accountability and trust within the community.
- Recommendation:
- recommend voluntary work for volunteers according to skills and location.
- Logger
- The Logger captures significant events within the platform, such as user registrations, login attempts, volunteer opportunity postings.
- Error logs contain information about the type of error
- Unite testing
- Unit tests cover specific functions, methods, or modules of your application, including those related to user authentication, skill matching, and messaging.
- Error Handling:
- Implement robust error handling to provide meaningful error messages to users and log errors for debugging.
This Platform empowers individuals to actively contribute to humanitarian causes and community development. It strengthens the volunteer ecosystem by making volunteering more accessible, transparent, and efficient. By facilitating meaningful connections between volunteers and organizations, it amplifies the positive impact of volunteer initiatives in various sectors, including disaster relief, education, healthcare, and social welfare.
The platform is designed to accommodate a growing number of volunteers and organizations. It leverages AWS infrastructure and scalable database solutions to ensure smooth operation even as the user base expands.
Data security and privacy are paramount. The platform implements robust access controls, encryption, and regular security audits to safeguard sensitive user information.
Following best practices in continuous delivery, the platform remains up-to-date and reliable, ensuring a seamless experience for volunteers and organizations.
This Platform represents a powerful humanitarian project idea that can have a lasting positive impact on communities by promoting volunteerism and facilitating volunteer efforts. It brings people together to make a meaningful difference in the world.
-
Clone the repository using this command
git clone https://github.com/SarahAbuirmeileh/Serve-and-Shine
-
Install dependencies using this command
npm install
-
Create a database (Choose it's name and store it in .env)
-
Set up environment variables: 4.1 Create .env file
4.2 Add to it these environment variables:PORT= # Port to run the server, example 3000 SECRET_KEY= # Choose one to encrypt the password DB_HOST= # The database host, if locally may be localhost DB_PORT= # Example 3306 DB_USERNAME= # According to your database connection DB_PASSWORD= # According to your database connection DB_NAME= # According to your database, example Serve-and-Shine AWS_ACCESS_KEY_ID= # From this to the end are data related to your AWS account AWS_SECRET_ACCESS_KEY= AWS_REGION= AWS_BUCKET_NAME= AWS_CERTIFICATES_BUCKET_NAME=
-
Build the application using this command:
npm run dev
🔥And finally you can access this incredible project, if you run it locally using port 3000, the requests basically should be sent to
http://localhost:3000/
You can learn more about Api for this project if you visit this (after cloning the project and do the previos steps)
http://localhost:3000/api-docs/
After Nov 2023, all AWS services won't be available