Docs · EN

DevFast Manager web documentation

A practical guide written from scratch from the repository technical content: setup, usage, configuration, development, API and architecture.

10curated sectionsNode 20+Fastify · React · Prisma
OverviewSetupFirst useModulesConfigurationProductionDevelopmentAPIArchitectureTroubleshooting

Product

What DevFast Manager is

DevFast Manager is a business management platform for small teams and startups. It centralizes projects, infrastructure, finance, tasks, bugs, team, internal chat, notifications and company settings in one web app.

BackendNode.js · Fastify · Prisma · TypeScriptFrontendReact · Vite · Tailwind · RechartsDataSQLite by default; MySQL/PostgreSQL via PrismaRealtimeInternal chat over WebSocket with HTTP fallback

Local install

Quick setup

1

Clone repository

git clone https://github.com/UserZero075/Business-Management-Dashboard.git
cd Business-Management-Dashboard
2

Backend

cd backend
npm install
npx prisma generate
npx prisma db push
npm run dev
3

Frontend

cd frontend
npm install
VITE_API_URL=http://localhost:3001 npm run dev
Requirements: Node.js 20+ and npm 9+. Backend runs on 3001; frontend on 5173.

First use

Initial registration

  1. Open http://localhost:5173.
  2. On login, click Register.
  3. Request the email OTP. If SMTP is not configured, development prints the code in backend console.
  4. Enter the 6-digit code, name and password.
  5. The first registered user becomes administrator.

Daily operation

Main modules

Dashboard

Income, expenses, profit, active projects, servers, costs, alerts and financial trend chart.

Projects

Project CRUD, ACTIVE/RENTABLE/PAUSED/ABANDONED/EXPERIMENTAL states, owners, members, user metrics and public URL.

Infrastructure

VPS, providers, domains, certificates, databases and percentage-based cost allocation per project.

Finance

Income and expenses in USD, EUR, CUP, USDT and MLC. El Toque rates every 24h or manual rates.

Tasks and bugs

Tasks with priority/status; bugs with low/medium/high/critical severity and open/in progress/resolved/closed flow.

Team

Members, roles, assigned projects and public profiles with avatar, bio, color and personal links.

Chat

Company, Co-founders and private channels. Persistent realtime messages over WebSocket.

Company

Organization name, objective and logo, visible in login, header and general UI.

Variables

System configuration

Database

DATABASE_URL="file:./devfast.db"
DATABASE_URL="mysql://user:password@localhost:3306/devfast"
DATABASE_URL="postgresql://user:password@localhost:5432/devfast"

Server and auth

PORT=3001
HOST=0.0.0.0
JWT_SECRET="long-secure-secret"
NODE_ENV=production

SMTP for OTP

SMTP_HOST="smtp.gmail.com"
SMTP_PORT=587
SMTP_USER="your-email@gmail.com"
SMTP_PASS="app-password"
SMTP_FROM="your-email@gmail.com"
SMTP_SECURE=false

Frontend

VITE_API_URL=http://YOUR_IP:3001 npm run build
In production always change JWT_SECRET, use SMTP app passwords and restrict ports with firewall.

Production

VPS deployment

Automatic

chmod +x deploy.sh
./deploy.sh

The script detects OS, installs Node if missing, installs dependencies, builds, prepares Prisma and asks whether to start in background.

Manual

cd backend
npm install
npx prisma db push
npm run build
HOST=0.0.0.0 PORT=3001 npm run start

cd ../frontend
npm install
VITE_API_URL=http://YOUR_IP:3001 npm run build
npm run preview -- --host --port 80

With Tailscale, allow only 100.64.0.0/10 to port 3001.

For developers

Development and extension

Backend structure

backend/src/routes contains auth, projects, vps, finance, tasks, dashboard, chat, activity and settings. services contains bootstrap, email, exchangeRates and logging.

Frontend structure

frontend/src/pages contains Login, Dashboard, Projects, Infrastructure, Finances, Tasks, Team, Chat, Notifications, Profile, Settings and UserProfile.

Add API route

import newRoute from './routes/newRoute.js'
await fastify.register(newRoute, { prefix: '/api/new' })

Add page

import NewPage from './pages/NewPage'
<Route path="/new" element={<NewPage />} />

Prisma

Edit backend/prisma/schema.prisma, then run npx prisma db push and npx prisma generate.

Validation

cd backend && npm run build
cd frontend && npm run build
npm run lint

REST API

Practical reference

Main endpoints grouped by domain. Authenticated routes use Authorization: Bearer <token>.

Auth

POST/api/auth/request-otp

Requests registration OTP.

{
  "email": "user@example.com"
}
POST/api/auth/register

Registers user and returns token.

{
  "email": "user@example.com",
  "password": "password123",
  "name": "Name",
  "otp": "123456"
}
POST/api/auth/login

Logs in.

GET/api/auth/me

Current user.

PUT/api/auth/me

Updates profile.

GET/api/auth/users

Lists users.

GET/api/auth/roles

Lists roles.

Projects

GET/api/projects

Lists projects.

GET/api/projects/:id

Single project.

POST/api/projects

Creates project.

{
  "name": "Mi Proyecto",
  "description": "Descripción",
  "status": "ACTIVE",
  "publicUrl": "https://..."
}
POST/api/projects/:id/metrics

Adds user metrics.

Infrastructure

GET/api/vps/providers

Providers.

POST/api/vps/providers

Creates provider.

GET/api/vps/servers

Lists VPS servers.

POST/api/vps/servers

Creates VPS server.

POST/api/vps/servers/:id/link

Links VPS to project with cost share.

GET/api/vps/items

Infrastructure items.

GET/api/vps/costs

Monthly cost summary.

Finance

GET/api/finance/transactions

Transactions filterable by project, type and date.

POST/api/finance/transactions

Creates income or expense.

GET/api/finance/summary

Financial summary.

GET/api/finance/rates/latest

Latest rates.

POST/api/finance/rates

Adds manual rate.

Tasks / Bugs

GET/api/tasks/tasks

Lists tasks.

POST/api/tasks/tasks

Creates task.

GET/api/tasks/bugs

Lists bugs.

POST/api/tasks/bugs

Reports bug.

GET/api/tasks/overview

Tasks and bugs overview.

Dashboard / Chat / Settings

GET/api/dashboard

System overview.

GET/api/dashboard/alerts

Alerts.

GET/api/dashboard/charts/income-expense

Income/expense chart.

GET/api/chat/channels

Channels.

POST/api/chat/channels/:id/messages

Sends message.

WS/api/chat/ws?token=<jwt_token>

Realtime chat.

GET/api/settings/company

Company settings.

Common codes400 Invalid request401 Unauthorized403 Forbidden404 Not found500 Server error

Architecture

How it is built

React + Vite + Tailwind + RechartsHTTP / WebSocketFastify + TypeScript + Prisma + JWTORMSQLite / MySQL / PostgreSQL

Backend

Fastify receives the request, validates CORS, verifies JWT when needed, validates input with Zod, runs service logic through Prisma and returns JSON.

Authentication

JWT token is stored in localStorage. Frontend sends it through Authorization: Bearer <token>. Passwords use bcrypt.

Services

bootstrap creates base roles/settings; email handles SMTP fallback; exchangeRates updates rates every 24h.

Known pending work

Tests, rate limiting, push notifications, CSV import, file uploads, historical metrics and more interactive dashboards.

Support

Common issues

Cannot find module

Run npm install in backend or frontend as needed.

Database error

Sync Prisma with npx prisma db push.

Port in use

Find the process with lsof -i :3001 or lsof -i :5173 and kill the PID.

CORS

Make sure backend listens on 0.0.0.0 and VITE_API_URL points to the correct backend.

OTP missing

Check SMTP. In development, the code appears in backend console.