The official codebase for college-based (event managing) organizations. FOUR-LEVEL Authorization system and scalable. All the necessary commands and software required for the installation of this project locally are listed below.
Demo Link - Click Here (Opens a link of Heroku deployment in the new tab)
Table of Contents
Run the git clone
command to clone this repository locally in your machine. You can run this command in CMD, GIT Bash, and obviously in the terminal (For macOS and Linux machines)
git clone https://github.com/LastComrade/Events-based-organizational-website.git
Software required -
Run the npm install
command to install all the necessary dependencies for this project.
npm install
For reference take the help of the .env.example file.
- After the successful installation of the MongoDB. Run this command to run the database server locally in your machine
mongod
- Now, run the
npm run dev
command to start the server with theport 3000
npm run dev
- Configure your environment variables.
Project should be up and running with the URL -
http://localhost:3000
locally.
For front-end Tailwind CSS and EJS templating engine is used and for back-end Express (NodeJS Framework) is used. MongoDB is used as the database.
- / - Home page.
- /credits - Credits page.
- /events - List the latest top 4 events from available categories.
- /events/{name_of_the_event} - Dedicated event page.
- /events/live/all - List all the live events (webninars or events/content that are streamed live).
- /events/upcoming/all - List all the upcoming events.
- /events/ongoing/all - List all the ongoing events.
- /events/archived/all - List all the archived events.
- /departments - List all the departments with their name, image, and description.
- /departments/{name_of_the_department} - Dedicated department page.
- /staff-register - Registration route for staff member.
- /staff-login - Login route for staff member.
- /staff-logout - Logout route for staff member.
- /forgot-password - Forgot password route renders a page asking for the email to verify.
- /dashboard - Render the dashboard page.
- /dashboard/board - List all the staff members account and their details in a table.
- /dashboard/contact-messages - List 15 latest contact message notifications.
- /dashboard/contact-messages/all - List all the contact message notifications.
- /dashboard/contact-messages/{ID_of_the_contact_message} - Contact message.
- /dashboard/department - Renders a form to edit the department information.
- /dashboard/events - Index all the events in a table with all their necessary information.
- /dashboard/event-create - Form to create a new event.
- /dashboard/events/{name_of_the_event}/participants/ - List all the participants that registered for that particular event.
- /dashboard/events/{ID_of_the_event}/edit - Form to edit an existing event.
- /dashboard/internship-applications - List 15 latest internship application notifications.
- /dashboard/internship-applications/all - List all internship applicatin notifications.
- /dashboard/internship-applications/{ID_of_the_internship_application} - Internship application.
- /dashboard/generate-key - Generate a key, which is used when a user tries to register as a staff member.
- /dashboard/magazine-subscribers - List all the subscribers, who have subscribed to the magazine.
- /dashboard/participants - List all the participants, who have recently registered for any event.
- /dashboard/participants/{ID_of_the_participant} - List all the events that are registered by that particular participant.
- /dashboard/profile - Index the profile edit form.
- Public Folder - Folder contains all the static files like CSS, JS scripts, and third party libraries files.
- Views Folder - Folder that contains all the EJS files. It's divided into three sections
- Home - EJS files for home routes
- Auth - EJS files for authentication routes
- Dashboard - EJS files for dashboard routes
- Archive - Archived EJS files that are not used in the main branch
Note: Every above folder has a sub-folder named sections to organize different sections of pages.
- Controllers - All the core functionality in the form of functions
- DashboardCont - Controller for dashboard functionality
- DeptCont - Controller for department functionality
- EventCont - Controller for event functionality
- HomeCont - Controller for home functionality
- StaffCont - Controller for staff authentication functionality
- Middlewares - All the request-based functions. For validation of form data, authentication, and authorization.
- Auth - Middleware for authentication and authorization
- Validation - Middleware for validation of different forms data
- Models - Mongoose used as the ODM for MongoDB.
- For testing purposes, seeds are used to seed the DB with staff, departments, events, and participants data.
- Google Sheets API is used to store the information of the event participants and magazine subscribers.
- Gmail API is used to send E-Mails.
Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
MIT |
Distributed under the MIT License. See LICENSE
for more information.
Konark Lohat - @konarklohat - [email protected]
Project Link: GitHub Repository Link