Giter Site home page Giter Site logo

yashty / event-management-system Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lastcomrade/event-management-system

0.0 0.0 0.0 11.39 MB

The official codebase for college-based (event managing) organizations. FOUR-LEVEL Authorization system and scalable.

Home Page: https://events-based-org.herokuapp.com/

License: MIT License

Shell 0.04% JavaScript 26.65% CSS 6.61% EJS 66.70%

event-management-system's Introduction

Events-based-organizational-website

Contributors Forks Stargazers Issues MIT License LinkedIn

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
  1. Installation
  2. Usage
  3. Project
  4. Contributing
  5. License
  6. Contact

Installation

1. Cloning the repository

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

2. Installing all the necessary NPM packages

Software required -

  1. NodeJS (LTS version is preferred)
  2. GIT
  3. MongoDB (Stable version is preferred)

Run the npm install command to install all the necessary dependencies for this project.

npm install

3. Setup the environment variables

For reference take the help of the .env.example file.

Usage

  1. After the successful installation of the MongoDB. Run this command to run the database server locally in your machine
mongod
  1. Now, run the npm run dev command to start the server with the port 3000
npm run dev
  1. Configure your environment variables.

Project should be up and running with the URL - http://localhost:3000 locally.

Project

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.

1. Routes (GET)

Home Routes

  • / - Home page.
  • /credits - Credits page.

Event Routes

  • /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.

Department Routes

  • /departments - List all the departments with their name, image, and description.
  • /departments/{name_of_the_department} - Dedicated department page.

Authentication Routes

  • /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 Routes

  • /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.

2. Front-End

  • 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.

3. Back-End

  • 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.

4. Seeds

  • For testing purposes, seeds are used to seed the DB with staff, departments, events, and participants data.

5. APIs

  • Google Sheets API is used to store the information of the event participants and magazine subscribers.
  • Gmail API is used to send E-Mails.

Contributing

Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

MIT | Distributed under the MIT License. See LICENSE for more information.

Contact

Konark Lohat - @konarklohat - [email protected]

Project Link: GitHub Repository Link

event-management-system's People

Contributors

lastcomrade avatar lokesh-2001 avatar avninder99 avatar astrogeek77 avatar geekabhinav007 avatar manbir-ss avatar ekam6300 avatar vanshika-15 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.