An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

# acevegantt.
GitHub Release License: BSD-3-Clause Citation File DOI CodeFactor OpenSSF Scorecard GitHub Stars Maintained by Jaisal E. K.

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

![acevegantt Main Interface](assets/screenshots/main_interface.jpg)

![acevegantt Admin Console](assets/screenshots/admin_console.jpg)

## 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).

Buy Me A Coffee