Building Community, Empowering Volunteers. This repository houses the user interface that connects volunteers to impactful civic opportunities, enhancing engagement through intuitive design and seamless functionality.
/home/ranuga/Programming/Projects/All/CivicCircle/FrontEnd/
├── .gitignore
├── LICENSE
├── README.md
├── app.py
├── requirements.txt
├── server
│ ├── __init__.py
│ ├── api
│ │ ├── __init__.py
│ │ ├── admin.py
│ │ ├── home.py
│ │ ├── organization.py
│ │ ├── volunteer.py
│ ├── helper_functions.py
│ ├── routes
│ │ ├── __init__.py
│ │ ├── admin.py
│ │ ├── home.py
│ │ ├── organization.py
│ │ ├── volunteer.py
│ ├── static
│ │ ├── images
│ │ │ └── logo.jpg
│ │ ├── scripts
│ │ │ ├── home
│ │ │ │ ├── about_us.js
│ │ │ │ ├── base.js
│ │ │ │ ├── contact_us.js
│ │ │ │ ├── login.js
│ │ │ │ └── sign_up.js
│ │ │ ├── organization
│ │ │ │ ├── trainings.js
│ │ │ │ └── volunteers.js
│ │ ├── styles
│ │ │ ├── admin
│ │ │ │ └── base.css
│ │ │ ├── errors
│ │ │ │ ├── 404.css
│ │ │ │ └── 500.css
│ │ │ ├── home
│ │ │ │ ├── about_us.css
│ │ │ │ ├── base.css
│ │ │ │ ├── contact_us.css
│ │ │ │ ├── home.css
│ │ │ │ ├── login.css
│ │ │ ├── organization
│ │ │ │ ├── applicants.css
│ │ │ │ ├── base.css
│ │ │ │ ├── trainings.css
│ │ │ │ └── volunteer_resume_analysitation.css
│ │ │ ├── volunteer
│ │ │ │ └── base.css
│ ├── templates
│ │ ├── admin
│ │ │ ├── admin
│ │ │ │ ├── ban.html
│ │ │ │ ├── base.html
│ │ │ │ ├── blog_writing.html
│ │ │ │ ├── home.html
│ │ │ │ ├── membership_requests.html
│ │ │ │ └── social_media.html
│ │ │ ├── ban.html
│ │ │ ├── base.html
│ │ │ ├── blog_writing.html
│ │ │ ├── home.html
│ │ │ ├── membership_requests.html
│ │ │ ├── social_media.html
│ │ ├── errors
│ │ │ ├── 404.html
│ │ │ └── 500.html
│ │ ├── home
│ │ │ ├── about_us.html
│ │ │ ├── base.html
│ │ │ ├── contact_us.html
│ │ │ ├── home.html
│ │ │ ├── login.html
│ │ │ └── sign_up.html
│ │ ├── organization
│ │ │ ├── applicants.html
│ │ │ ├── base.html
│ │ │ ├── campaign_budget_optimization.html
│ │ │ ├── home.html
│ │ │ ├── internal_job_posting.html
│ │ │ ├── trainings.html
│ │ │ ├── volunteer_resume_analysitation.html
│ │ │ └── volunteers.html
│ │ ├── volunteer
│ │ │ ├── base.html
│ │ │ ├── cv.html
│ │ │ ├── home.html
│ │ │ ├── opportunities.html
│ │ │ ├── profile.html
│ │ │ └── trainings.html
└── test.json
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/CivicCircle/FrontEnd.git cd FrontEnd
-
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
- Windows:
venv\Scripts\activate
- Linux/MacOS:
source venv/bin/activate
- Windows:
-
Install dependencies:
pip install -r requirements.txt
Ensure you have the backend server running and properly configured. Update the app.py
file with the correct backend URLs if necessary.
To start the Flask server, run:
flask run
The server will run on the default port 5000
. You can access the frontend at http://localhost:5000
.
The frontend provides an interface for managing organizations, volunteers, trainings, and opportunities. It interacts with the backend services to fetch and update data.
-
Organization Home
- Endpoint:
/organization
- Method:
GET
- Description: Displays the organization home page.
- Endpoint:
-
Trainings
- Endpoint:
/organization/trainings
- Method:
GET
- Description: Displays all training opportunities.
- Endpoint:
-
Create Training
- Endpoint:
/organization/trainings/create
- Method:
POST
- Description: Handles the creation of a new training.
- Endpoint:
-
Update Training
- Endpoint:
/organization/trainings/update/<string:trainingID>
- Method:
POST
- Description: Handles the update of an existing training.
- Endpoint:
-
Delete Training
- Endpoint:
/organization/trainings/delete/<string:trainingID>
- Method:
POST
- Description: Handles the deletion of a training.
- Endpoint:
-
Volunteer Opportunities
- Endpoint:
/organization/volunteers
- Method:
GET
,POST
- Description: Displays all volunteer opportunities or handles the creation of a new opportunity.
- Endpoint:
-
Volunteer Profile
- Endpoint:
/volunteer/profile
- Method:
GET
- Description: Displays the volunteer profile.
- Endpoint:
-
Trainings
- Endpoint:
/volunteer/trainings
- Method:
GET
- Description: Displays all training opportunities for volunteers.
- Endpoint:
-
Apply for Training
- Endpoint:
/volunteer/trainings/apply/<string:trainingID>
- Method:
POST
- Description: Handles the application for a training.
- Endpoint:
-
Volunteer Opportunities
- Endpoint:
/volunteer/opportunities
- Method:
GET
- Description: Displays all volunteer opportunities for volunteers.
- Endpoint:
-
Apply for Opportunity
- Endpoint:
/volunteer/opportunities/apply/<string:opportunityID>
- Method:
POST
- Description: Handles the application for a volunteer opportunity.
- Endpoint:
-
Login
- Endpoint:
/auth
- Method:
GET
,POST
- Description: Displays the login page and handles user authentication.
- Endpoint:
-
Logout
- Endpoint:
/organization/logout
- Method:
GET
- Description: Logs out the user.
- Endpoint:
The HTML templates are located in the server/templates
directory. These templates use Jinja2 syntax for dynamic content rendering.
- Base Template: `
base.html`
- Organization Home Template:
organization/home.html
- Trainings Template:
organization/trainings.html
- Volunteer Opportunities Template:
organization/volunteers.html
- Volunteer Profile Template:
volunteer/profile.html
Static files (CSS, JS, images) are located in the server/static
directory. The project uses both Bootstrap and Tailwind CSS for styling.
- CSS Files:
server/static/styles/
- JavaScript Files:
server/static/scripts/
- Images:
server/static/images/
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.