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
- 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.
Run setup.bash to install and start the server:
$ ./setup.bashRun these commands to install and start the server:
$ npm installCreate .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.bashTo run the server, you can either run in dev mode:
$ npm run devor you can run in distribution mode:
$ npm run distTo run stylelint:
$ npm run lintTo run the tests:
$ npm run testor
$ npm run test-extendTo update the project stylesheet with SASS:
$ npm run styleor
$ npm run style-watchIf you have any questions or issue, just write to my Email.