- π‘ Project Overview
- π Website Details
- βοΈ Implemented Features
- π API Endpoints
- π Get Events
- π Get Event by ID
- β Create Event
- π Update Event
- β Delete Event
- π¬ Add Comment to Event
- β Delete Comment from Event
- π Add Like to Event
- βοΈ Remove Like from Event
- π’ Submit Rating for Event
- π₯ Join User to Event
- π€ Remove User from Event
- π₯ Get Application Status
β οΈ Submit Report
- π Access Levels
The Volunet project is a free website that aims to connect individuals with volunteer opportunities to create a positive impact in their communities. The platform serves as a bridge between volunteers and non-profit organizations, enabling users to discover, participate in, and organize various volunteering events tailored to their interests and passions.
The core objectives of the Volunet website are as follows:
-
Empowering Volunteering: The website's primary goal is to empower individuals by providing them with easy access to a wide range of volunteer opportunities in their local communities. By connecting volunteers with meaningful causes, the platform encourages a sense of purpose and engagement.
-
Facilitating Community Impact: Volunet strives to foster a culture of community impact and social responsibility. By promoting volunteer events that serve the community's needs, the website aims to bring positive change and make a difference.
The concept behind Volunet revolves around inclusivity, collaboration, and social good. The platform fosters a sense of unity among individuals from diverse backgrounds, enabling them to come together, contribute their skills and time, and collectively make a significant impact on various social, environmental, and humanitarian causes.
The website is designed for individuals of all ages and backgrounds who are passionate about creating positive change through volunteering. Whether they are students, working professionals, or retirees, the platform welcomes everyone to be part of the community-driven effort to make the world a better place.
While specific creative/design specifications have not been outlined, the user experience and interface design prioritize simplicity, intuitiveness, and accessibility. The focus is on providing a seamless browsing experience that encourages users to explore and engage with volunteer opportunities effortlessly.
- Empowerment
- Community
- Impact
The Volunet website offers a diverse range of features and functionalities to enhance the user experience and community impact:
-
User Account: Users can easily create accounts, enabling them to access personalized features and participate in volunteer events that align with their interests and values.
-
Volunteer Opportunities: The platform provides an extensive database of volunteer events, making it simple for users to find and join events that resonate with their passions.
-
Community Collaboration: Users can actively engage with events by writing comments, giving ratings, and expressing appreciation through likes, fostering a sense of collaboration and camaraderie.
-
Event Reporting System: To maintain the platform's integrity, Volunet allows users to report events that may not align with the website's mission. When an event receives a significant number of reports, it undergoes review, ensuring only meaningful and genuine events are featured.
-
Notification System: The website features a comprehensive notification system to keep users informed about essential updates, such as registration confirmation, application status, and new event listings. Users can choose to receive notifications both within the platform and through email.
-
Responsibility and Social Impact: By promoting events organized by non-profit organizations and focusing solely on community-oriented initiatives, the platform upholds its responsibility to maximize social impact and create lasting change.
The website is thoughtfully designed to deliver a seamless experience across various devices, including desktops, laptops, and mobile web browsers. This multi-device compatibility ensures that users can access and engage with Volunet's features from any location with internet connectivity.
The user experience is at the forefront of Volunet's design and development process. The platform aims to make the volunteering journey enjoyable, rewarding, and inspiring for users. By facilitating connections between volunteers and non-profits, Volunet enables individuals to witness the tangible impact of their contributions to their communities and society at large.
The Volunet website is built on the foundation of several essential features, enhancing the platform's functionality and user experience:
- User Registration and Authentication
- Event Listings with Filtering and Sorting Options
- Event Details and Information
- User Comments and Ratings on Events
- Event Like Functionality
- User Applications for Events
- Event Reporting System
- Notification System for Users
- User Profiles and Account Management
- Administrative Features for Event Management
- Endpoint:
GET /api/v1/events
- Description: This endpoint returns a list of events filtered by the user and other criteria such as date. The events can also be sorted based on the event date.
- Query Parameters:
user
: Filters the events by the user name.date
: Filters the events by the date. the events. Multiple events can be provided by separating them with commas.
- Endpoint: `GET /api/v1
/events/:id`
- Description: This endpoint retrieves detailed information about a specific event based on its unique ID.
- Endpoint:
POST /api/v1/events
- Description: This endpoint allows organizer users to create new events.
- Endpoint:
PUT /api/v1/events/:id
- Description: This endpoint enables the creator of an event or an administrator to update the event details.
- Endpoint:
DELETE /api/v1/events/:id
- Description: This endpoint allows the creator of an event or an administrator to delete an event from the platform.
- Endpoint:
POST /api/v1/events/:id/comments
- Description: Users can add comments to specific events using this endpoint.
- Endpoint:
DELETE /api/v1/events/:id/comments/:commentId
- Description: Users can remove their comments from specific events through this endpoint.
- Endpoint:
PUT /api/v1/events/:id/likes
- Description: Users can express their appreciation for an event by adding likes using this endpoint.
- Endpoint:
DELETE /api/v1/events/:id/likes
- Description: Users can remove their like from an event using this endpoint.
- Endpoint:
PUT /api/v1/events/:id/rating
- Description: Users can submit ratings for events using this endpoint.
- Endpoint:
POST /api/v1/events/:id/users
- Description: Users can join an event through this endpoint.
- Endpoint:
DELETE /api/v1/events/:id/users
- Description: Users can be removed from an event using this endpoint.
- Endpoint:
GET /api/v1/applications/:id/status
- Description: This endpoint allows users to check the status of their event application.
- Endpoint:
POST /api/v1/reports
- Description: Users can submit a report about an event using this endpoint.
The Volunet website has three access levels, each with different permissions and functionalities:
Normal users have access to the following features:
- Register a new user
- User login
- Get a list of events by filter
- Get an event by ID
Organizer users have access to the following features in addition to the normal user functionalities:
- Return profile of the logged-in user
- Update logged-in user information
- Get all notifications
- Create a new event
- Update an event (by the creator or an administrator)
- Add or remove likes from events
- Add comments to events
- Remove comments from events
- Submit or clear ratings for events
- Join a user to an event
- Remove a user from an event
- Get the status of an application
- Submit a report
Administrators have access to the following features in addition to the organizer user functionalities:
- Get a list of users by filter
- Return a user by ID
- Update a user by ID
- Delete a user
- Create a new notification
- Delete a notification of a user's document
- Get a list of all applications
- Update application status
- Delete an application
- Get a list of all reports
- Get a report by ID
- Update a report
- Delete a report
sequenceDiagram
participant User
participant Website
participant Database
User->>Website: Fill out registration form
Website->>User: Confirm successful registration
Website->>Database: Save user data
alt Registration successful
Website->>User: Display success message
else Registration failed
Website->>User: Display error message
end
sequenceDiagram
participant User
participant Website
participant Database
participant Event
User->>Website: Login
Website->>User: User authenticated
User->>Website: View event details
Website->>User: Display event details
User->>Website: Add comment to event
Website->>Database: Save comment data
Website->>Event: Notify event about new comment
Event-->>Website: Acknowledge comment update
Website->>User: Display success message