https://github.com/ekjaisal/acevegantt
acevegantt: A Free and Open-source Full-stack Gantt Chart Implementation for Managing Academic Events
https://github.com/ekjaisal/acevegantt
admin-dashboard firebase frontend full-stack gantt gantt-chart
Last synced: 6 months ago
JSON representation
acevegantt: A Free and Open-source Full-stack Gantt Chart Implementation for Managing Academic Events
- Host: GitHub
- URL: https://github.com/ekjaisal/acevegantt
- Owner: ekjaisal
- License: bsd-3-clause
- Created: 2024-08-12T06:01:56.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-23T07:08:09.000Z (6 months ago)
- Last Synced: 2026-01-24T00:13:39.296Z (6 months ago)
- Topics: admin-dashboard, firebase, frontend, full-stack, gantt, gantt-chart
- Language: HTML
- Homepage: https://acevegantt.jaisal.in
- Size: 459 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
Awesome Lists containing this project
README
*acevegantt.* is a free, open-source, full-stack Gantt chart implementation tailored for academic event management. It provides a simple admin console for managing users and adding or editing tasks rendered to authenticated users on the frontend interface as a Gantt chart. While *acevegantt.* is custom-built for internal tracking of academic conferences, workshops, etc., it is adaptable with minor modifications for other event formats and use cases.


## Requirements π
- [Node.js](https://nodejs.org)
- npm (usually comes with Node.js)
- Firebase BaaS (available with Google account)
## Usage π»
1. Download the latest release from the [releases](https://github.com/ekjaisal/acevegantt/releases) page and extract the zip file (recommended approach). Alternatively, clone the repository using the `git clone https://github.com/ekjaisal/acevegantt.git` command.
2. Navigate to the acevegantt directory and install all the necessary dependencies by running `npm install`.
3. Set up the database from **[Firebase Console](https://console.firebase.google.com) β Create a Project β Build β Firestore Database β Create Database**.
4. Generate a new private key for the service account from **Project Overview β Project Settings β Service Accounts β Generate New Private Key** and save the downloaded file as serviceAccountKey.json in the backend sub-directory within the acevegantt directory.
***Note:** Do not upload the serviceAccountKey.json file to a public repository.*
5. Configure the environment variables in the .env file in the root directory by replacing `your-project-id` with the Firebase Project ID and `your-jwt-secret` with a secret string for JWT encryption.
***Note:** Do not upload the .env file to a public repository.*
6. To create an initial admin user, modify the create-admin.js file in the root directory by replacing the `set_admin_user` and `set_admin_password` with the preferred admin username and password and run `node create-admin.js` command.
7. Modify the `Event Placeholder` in index.html with the actual event name to be displayed in the chart interface.
8. Run `node server.js` to start the local server. Access the chart interface from [http://localhost:5000](http://localhost:5000) and the admin console from [http://localhost:5000/admin](http://localhost:5000/admin).
9. To thoroughly test the implementation and see the live preview of modifications, run the local server using the `nodemon server.js` command instead of `node server.js`.
## Deployment π
1. Choose a hosting platform for deployment based on the project requirementsβone with a generous, permissive free tier for smaller projects or a paid option for larger projects.
2. Set up the environment variables from the .env file and any others based on the requirements of the hosting platform.
3. Deploy the code following the hosting platform's guidelines.
## Third-Party Libraries and Services π οΈ
This project uses the following open-source libraries:
- [Express](https://expressjs.com/) for the web server framework,
- [Firebase Admin SDK](https://firebase.google.com/docs/admin/setup) for database and authentication,
- [bcrypt.js](https://github.com/dcodeIO/bcrypt.js) for password hashing,
- [jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) for JWT authentication,
- [dotenv](https://github.com/motdotla/dotenv) for environment variable management,
- [CORS](https://github.com/expressjs/cors) for Cross-Origin Resource Sharing,
- [SortableJS](https://github.com/SortableJS/Sortable) for tasks list management, and
- [Roboto Font](https://fonts.google.com/specimen/Roboto) for UI typography.
## License π
This project is licensed under the BSD 3-Clause License. See the [LICENSE](LICENSE) file for details.
## Disclaimer π£
This setup is provided as-is, without any warranties. Users are responsible for ensuring that their use of this implementation complies with the terms of service of [Firebase](https://firebase.google.com/terms) and the hosting platform.
## Acknowledgements π€πΎ
*acevegantt.* has benefitted significantly from the assistance of Anthropic's [Claude 3.5 Sonnet](https://www.anthropic.com/news/claude-3-5-sonnet) with all the heavy lifting associated with coding and some of the many ideas, suggestions, and feedback from [Sarah Harniswala](https://github.com/SarahHarniswala).
