dashboard Backend is the server-side component of a system that dials via TWILIO, authenticates and records calls.
- Node.js & TypeScript – The core technologies for the backend.
- Jest – Used for unit and integration testing.
- Swagger – Generates API documentation.
- MySQL – Relational database for storing project and settings data.
- Sequelize – Sequelize is a modern TypeScript and Node.js ORM.
- Twilio – Twilio is a cloud-based communication platform.
git clone https://github.com/eCustom-Solutions/dashboard-api.git
cd dashboard-apicp env.sample .env
# Edit the .env file and set the required credentialsnpm cinpm run devThe API documentation is available at: http://localhost:9876/api-docs/
To run tests, use the following command:
npm run testGit Flow is a branching model for Git that provides a robust framework for managing larger projects. This project follows Git Flow conventions for branch management.
macOS (Homebrew):
brew install git-flowLinux (Debian/Ubuntu):
apt-get install git-flowWindows (Git for Windows):
Git Flow is included with Git for Windows. If not available, install via:
# Using Chocolatey
choco install gitflow-avh
# Or download from: https://github.com/nvie/gitflow/wiki/WindowsInitialize Git Flow in the repository:
git flow initAccept the default branch names when prompted (or customize as needed):
- Production branch:
master - Development branch:
dev - Feature prefix:
feature/ - Release prefix:
release/ - Hotfix prefix:
hotfix/ - Support prefix:
support/
Starting a new feature:
# Start a new feature branch from develop
git flow feature start <feature-name>
# This creates: feature/<feature-name>Finishing a feature:
# Merge feature back into develop and delete the feature branch
git flow feature finish <feature-name>Publishing a feature (push to remote for collaboration):
git flow feature publish <feature-name>Pulling a feature (get a published feature from remote):
git flow feature pull origin <feature-name>Starting a release:
# Start a release branch from develop
git flow release start <version>
# This creates: release/<version>Finishing a release:
# Merge into main and develop, tag the release, delete the release branch
git flow release finish <version>Starting a hotfix:
# Start a hotfix branch from main for urgent production fixes
git flow hotfix start <hotfix-name>
# This creates: hotfix/<hotfix-name>Finishing a hotfix:
# Merge into master and dev, tag the hotfix, delete the hotfix branch
git flow hotfix finish <hotfix-name>| Branch Type | Prefix | Example | Purpose |
|---|---|---|---|
| Feature | feature/ |
feature/user-authentication |
New features and enhancements |
| Release | release/ |
release/1.2.0 |
Preparing a new production release |
| Hotfix | hotfix/ |
hotfix/login-bug |
Urgent fixes for production |
| Support | support/ |
support/legacy-api |
Long-term support branches |
Branch Workflow Summary:
master (production)
│
├── hotfix/* ──────────-────────┐
│ │
└── dev ◄────────────----──────┤
│ │
├── feature/* ───────────┤
│ │
└── release/* ───────────┘
master– Always reflects production-ready statedev– Integration branch for features, reflects latest development changesfeature/*– Branch off fromdev, merge back intodevrelease/*– Branch off fromdev, merge into bothmasteranddev
hotfix/* – Branch off from master, merge into both master and dev
Use the -p (push) flag with the finish command to delete the remote branch as well:
bash
git flow feature finish -p featu