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.bash
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
To run the server, you can either run in dev mode:
$ npm run dev
or you can run in distribution mode:
$ npm run dist
To run stylelint:
$ npm run lint
To run the tests:
$ npm run test
or
$ npm run test-extend
To update the project stylesheet with SASS:
$ npm run style
or
$ npm run style-watch
If you have any questions or issue, just write to my Email.