A Django-based application that allows users to browse and participate in volunteer events across various categories. Users can register, login, add events to favourites, attend events, and more.
Deployed version: https://volunteeract.azurewebsites.net/
- Register: Users can register, providing First Name, Last Name, Email, Password and Confirm Password - error messages are displayed if the values are not in the correct format. Users can also register with Google.
- Login: Users can log in to their account after it has been created. Users can also login with Google.
- Logout: Users can log out of their accounts after they have been logged in.
-
Navigation Buttons:
- Home: Redirects to the
Home
page. - Emergency button: Shows if there are emergency events or not. If the button flashes in red, then there are some emergency events. If the button is green, then there are no emergency events at the moment.
- About Us: Redirects to the
About Us
page. - Contact Us: Redirects to the
Contact Us
page. - All Events: Redirects to the
All Events
page. - User Authentication Buttons:
- Log In: Displays a login button if the user is not logged in.
- Sign Up: Displays a sign up button if the user is not logged in.
- User Dropdown Menu: Displays a dropdown with the user's profile image if logged in, which includes links to:
- Favourites: Displays the events that the user has added to favourites.
- Tickets: Displays the events that the user is attending.
- My Events: Displays the events that the user has created.
- My Profile: Displays an edit form with the user's information.
- Home: Redirects to the
-
Links to
Log In
andSign Up
if the user is not logged in. -
Links to
Profile
,Favourites
,Tickets
,My Events
if the user is logged in. -
Links to
Events
,Upcoming Events
,Past Events
in section "Discover". -
Links to
About Us
,Contact Us
pages. -
Links to social accounts.
-
Upcoming events: See a part of the upcoming events.
-
Explore categories: See all categories and explore them one by one.
-
Popular Cities on VolunteerAct: See first six popular cities that have the most attendees.
-
Discover Events: Section with a link that redirects to the events page.
-
Create an Event: Section with a link that redirects to the create event page.
-
Short and long descriptions of the category.
-
Number of events and members; Some of the cities that the events take place at.
-
Part of the upcoming events in the category.
-
Part of the past events in the category.
-
Active members - members that participate in events in the category.
-
Photos section - photos of the events in this category.
-
Upload a photo - only active members of the category are allowed to upload a photo.
-
Title and details of the event.
-
Category, city, location, online link (if online event) displayed.
-
Save Event to Favourites
button for logged in users. -
Edit
andDelete
for author of the event and admin (user who is from the staff_members group or is superuser) -
Comments section - only first three comments are displayed and every logged in user can add a new comment.
-
Edit and delete comment - for author of the comment and admin (user who is from the staff_members group or is superuser).
-
Attend button - for every logged in user except for the author because he is already attending the event.
-
Share button - for every kind of users.
-
See more section - displays other events from the category.
-
After clicking the
Delete
button, a container is displayed on the page which asks for the confirmation for the deletion from the user.
-
Only the author of the event, a user of the 'staff_members' group or a superuser can access this page.
-
The user can change the title, poster image, details, time, city, location and online meeting link (if the event is online).
-
Only logged in users have access to this page.
-
All events displayed.
-
A search bar which allows users to search for an event case-insensetively.
-
Filters for category, city and time.
-
Only logged in users have access to this page.
-
User needs to provide category, image, title, city and location (if the event is not going to be online), online meeting link (if the event is going to be online), time and details.
-
Everyone has access to this page.
-
This page is dedicated to urgent events.
-
An event in this category becomes no longer urgent only when it is deleted.
-
Add Emergency Event
button - only logged in users can add emergency events. -
When an emergency event is added, all active members of its category will be notified by receiving an email.
-
A form for contacting the team of VolunteerAct through email. User needs to add his full name, email, subject and message.
-
Contact information - phone number, email, location, social media links
-
Location with a map
-
Dislays all the events that the users has saved to favourites.
-
A search bar which allows users to search for an event case-insensetively.
-
Filters for category, city and time.
-
Displays all the events that the user is attending.
-
A search bar which allows users to search for an event case-insensetively.
-
Displays upcoming and past events that the user has created.
-
Attending participants in the events that the user has created.
-
If the profile is of the currently logged in user, a form for editing will be displayed. The user can change his profile picture, first name, last name, phone number, email and bio.
-
If the profile is not of the currently logged in user, a page with the information for the specific user will be displayed.
-
Delete
button - redirects to the delete profile page.
- Python: Core language for functionality.
- Django: Python-based framework.
- PostgreSQL: Database system.
- JavaScript: Language for functionalities on the front-end.
- HTML: Language for the structure of the templates.
- CSS: Styling the application.
- Azure: Deployment platform.
- Cloudinary: Storing user profile pictures.
- Google AllAuth: Login and register with Google.
- Google Email: Sending emails and receiving emails.
- Pillow: Validate if a file is an image.
- Yake: Extracting keywords from a text.
- Whitenoise: Serves static files.
- Pixabay API: Fetching images of cities.
- Users:
- Email: [email protected]; password: Andy123!!AA (staff_members group)
- Email: [email protected]; password: Petya123!!PP (staff_members group)
- Email: [email protected]; password: Stani123!!SS (regular_users group)
- Email: [email protected]; password: Anii123!!AA (regular_users group)
- Python and Django installed.
-
Clone the repository:
git clone https://github.com/rayapetkova/VolunteerAct.git
-
Create and activate venv
-
Install requirements.txt:
pip install -r requirements.txt
-
Start the project:
python manage.py runserver
-
Open new terminal and run the command:
celery -A VolunteerAct worker --pool=solo --loglevel=info
-
Open the URL generated in the first teminal and enjoy! :))
Thank you for being a part of VolunteerAct! For questions or suggestions, don't hesitate to reach out with any thoughts or concerns!