Skip to content

Empower your team with Pulse, a Node.js and Express-based reporting system. Effortlessly manage projects, customize reports, and track progress with ease.

License

Notifications You must be signed in to change notification settings

robjoh01/pulse-ht23

Repository files navigation

Banner

Coverage license

Welcome to Pulse - Project Management System 🚀

Pulse is a powerful custom reporting system developed with Node.js and Express to streamline project management for our team. It revolutionizes how we register team members, configure projects, set reporting frequencies, customize report formats, and provide insightful dashboards for better collaboration and efficiency.

Note

This project uses npm package manager and express.js package for handling the server side.

View docs

View coverage

Key Features

  • Security: Utilizes environment variables and server-side session cookies for enhanced security.In addition, hashing the user's password into the database with bcrypt.
  • Best Practices: Adheres to industry best practices for robust and maintainable code.
  • Linting: Includes ESLint for code consistency and quality checks.
  • GitHub Actions: Implements GitHub Actions for automated workflows and testing.
  • Documentation: Comprehensive and well-structured codebase with extensive documentation for easier understanding and onboarding.
  • Database: Powered by MySQL for efficient and organized data management.
  • Themes: Offers both light and dark theme options for a personalized user experience.
  • Sass: Utilizes Sass for efficient CSS styling and maintainability.
  • Testing: Includes Jest for testing and ensuring code coverage.
  • NPM Packages: Utilizes a wide range of npm packages for added functionalities and productivity.

Installment (Automatic)

Run setup.bash to install and start the server:

$ ./setup.bash

Installment (Manual)

Run these commands to install and start the server:

$ npm install

Create .env file:

$ touch .env
# Application Config
PORT=<number>
SALT_ROUNDS=<number>
COOKIE_SECRET=<string>
CONFIG_MODE=<string> # dev|dist

# Development Config
FORCE_LOGIN=<boolean>
ADMIN_ID=<guid>
EMPLOYEE_ID=<guid>
FORCE_ID=$ADMIN_ID # ADMIN_ID|EMPLOYEE_ID

# Email config
ENABLE_EMAIL=<boolean>
EMAIL_HOST=<string>
EMAIL_PORT=<number>
EMAIL_DISPLAY_NAME=<string>
EMAIL_USER=<string>
EMAIL_PASS=<string>

# URL Links
PHONE_URL=<string>
GITHUB_URL=<string>
GMAIL_URL=<string>

Also create pulse.json file (at config/db/pulse.json):

$ mkdir -p config/db
$ touch config/db/pulse.json
{
    "host": "<hostname>",
    "user": "<user>",
    "password": "<password>",
    "database": "<database>",
    "multipleStatements": true
}

Then initialize the database locally:

$ cd sql
$ ./scripts/run.bash

Run server

To run the server, you can either run in dev mode:

$ npm run dev

or you can run in distribution mode:

$ npm run dist

Stylelint

To run stylelint:

$ npm run lint

Unit Testing

To run the tests:

$ npm run test

or

$ npm run test-extend

Updating the stylesheet

To update the project stylesheet with SASS:

$ npm run style

or

$ npm run style-watch

🔗 Helpful links

🆘 Support

If you have any questions or issue, just write to my Email.

📍 Footnotes

About

Empower your team with Pulse, a Node.js and Express-based reporting system. Effortlessly manage projects, customize reports, and track progress with ease.

Topics

Resources

License

Stars

Watchers

Forks