EmpCloud field force system for GPS tracking, check-ins, attendance, task workflows, and workforce analytics.
- GitHub: https://github.com/EmpCloud/emp-field
- Monorepo structure:
packages/server- Backend API (Node.js + Express + MongoDB)packages/client- Frontend dashboard (React + Vite)
This project is open source and maintained in the public repository: https://github.com/EmpCloud/emp-field
This project helps organizations manage and monitor field employees with:
- Real-time location tracking and geofence-aware activity
- Attendance and leave management
- Task assignment, stage progression, and reporting
- Client management and operational dashboards
- Exportable reports and analytics
- Authentication and protected route handling
- Dashboard with charts, status cards, and activity widgets
- Employee directory, filters, and data tables
- Live tracking and timeline visualization
- Attendance, leave, holiday, and request screens
- Client and report management
- Modular domain APIs under
core/* - JWT-based access control via middleware
- CRUD and reporting endpoints for major business modules
- MongoDB persistence via Mongoose
- Swagger generation and API docs endpoint
- Logging, security middleware, and scheduled jobs
- Frontend: React 18, Vite, React Router, React Query, Tailwind, Radix UI, MUI
- Backend: Node.js, Express, Mongoose, Joi, JWT, Helmet, Morgan/Winston
- Database: MongoDB
- Docs: Swagger (server-generated)
emp-field/
package.json # Root scripts to run full stack
README.md # This file
packages/
client/ # Frontend app
server/ # Backend API
- Node.js 16+ (recommended latest LTS)
- npm
- MongoDB running for backend local development
From project root:
npm install
npm run install:all- Frontend: create
packages/client/.env(checkpackages/client/README.md) - Backend: create
packages/server/.env(checkpackages/server/Readme.md)
npm run devDefault local URLs (typical):
- Frontend:
http://localhost:5173 - Backend:
http://localhost:3000(or as configured)
npm run dev- Start backend and frontend togethernpm run dev:server- Start only backend (packages/server)npm run dev:client- Start only frontend (packages/client)npm run install:all- Install dependencies for both packages
- Backend base path typically uses
/v1/*routes. - Swagger docs are available when server is running (usually
/api-doc). - For detailed endpoint and domain documentation, see
packages/server/Readme.md.
- Keep frontend API base URL aligned with backend host/port.
- Ensure MongoDB is running before starting backend.
- The client and server are independently runnable from their own package directories.
- Root scripts are provided for convenience in local full-stack development.
npm run devfails at root:- Run
npm installat root andnpm run install:all.
- Run
- Backend fails to start:
- Verify MongoDB and backend
.envvalues.
- Verify MongoDB and backend
- Frontend cannot call APIs:
- Verify client
.envAPI URL points to backend.
- Verify client
- Swagger file errors:
- Run backend scripts from
packages/serverto regenerate docs if needed.
- Run backend scripts from
- Create a feature branch
- Make changes with clear commits
- Test frontend and backend locally
- Open a pull request with summary and test steps
- Client docs:
packages/client/README.md - Server docs:
packages/server/Readme.md