Clone repository
git clone https://github.com/UserZero075/Business-Management-Dashboard.git
cd Business-Management-DashboardDocs · EN
A practical guide written from scratch from the repository technical content: setup, usage, configuration, development, API and architecture.
Product
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.
Local install
git clone https://github.com/UserZero075/Business-Management-Dashboard.git
cd Business-Management-Dashboardcd backend
npm install
npx prisma generate
npx prisma db push
npm run devcd frontend
npm install
VITE_API_URL=http://localhost:3001 npm run devFirst use
http://localhost:5173.Daily operation
Income, expenses, profit, active projects, servers, costs, alerts and financial trend chart.
Project CRUD, ACTIVE/RENTABLE/PAUSED/ABANDONED/EXPERIMENTAL states, owners, members, user metrics and public URL.
VPS, providers, domains, certificates, databases and percentage-based cost allocation per project.
Income and expenses in USD, EUR, CUP, USDT and MLC. El Toque rates every 24h or manual rates.
Tasks with priority/status; bugs with low/medium/high/critical severity and open/in progress/resolved/closed flow.
Members, roles, assigned projects and public profiles with avatar, bio, color and personal links.
Company, Co-founders and private channels. Persistent realtime messages over WebSocket.
Organization name, objective and logo, visible in login, header and general UI.
Variables
DATABASE_URL="file:./devfast.db"
DATABASE_URL="mysql://user:password@localhost:3306/devfast"
DATABASE_URL="postgresql://user:password@localhost:5432/devfast"PORT=3001
HOST=0.0.0.0
JWT_SECRET="long-secure-secret"
NODE_ENV=productionSMTP_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=falseVITE_API_URL=http://YOUR_IP:3001 npm run buildJWT_SECRET, use SMTP app passwords and restrict ports with firewall.Production
chmod +x deploy.sh
./deploy.shThe script detects OS, installs Node if missing, installs dependencies, builds, prepares Prisma and asks whether to start in background.
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 80With Tailscale, allow only 100.64.0.0/10 to port 3001.
For developers
backend/src/routes contains auth, projects, vps, finance, tasks, dashboard, chat, activity and settings. services contains bootstrap, email, exchangeRates and logging.
frontend/src/pages contains Login, Dashboard, Projects, Infrastructure, Finances, Tasks, Team, Chat, Notifications, Profile, Settings and UserProfile.
import newRoute from './routes/newRoute.js'
await fastify.register(newRoute, { prefix: '/api/new' })import NewPage from './pages/NewPage'
<Route path="/new" element={<NewPage />} />Edit backend/prisma/schema.prisma, then run npx prisma db push and npx prisma generate.
cd backend && npm run build
cd frontend && npm run build
npm run lintREST API
Main endpoints grouped by domain. Authenticated routes use Authorization: Bearer <token>.
/api/auth/request-otpRequests registration OTP.
{
"email": "user@example.com"
}/api/auth/registerRegisters user and returns token.
{
"email": "user@example.com",
"password": "password123",
"name": "Name",
"otp": "123456"
}/api/auth/loginLogs in.
/api/auth/meCurrent user.
/api/auth/meUpdates profile.
/api/auth/usersLists users.
/api/auth/rolesLists roles.
/api/projectsLists projects.
/api/projects/:idSingle project.
/api/projectsCreates project.
{
"name": "Mi Proyecto",
"description": "Descripción",
"status": "ACTIVE",
"publicUrl": "https://..."
}/api/projects/:id/metricsAdds user metrics.
/api/vps/providersProviders.
/api/vps/providersCreates provider.
/api/vps/serversLists VPS servers.
/api/vps/serversCreates VPS server.
/api/vps/servers/:id/linkLinks VPS to project with cost share.
/api/vps/itemsInfrastructure items.
/api/vps/costsMonthly cost summary.
/api/finance/transactionsTransactions filterable by project, type and date.
/api/finance/transactionsCreates income or expense.
/api/finance/summaryFinancial summary.
/api/finance/rates/latestLatest rates.
/api/finance/ratesAdds manual rate.
/api/tasks/tasksLists tasks.
/api/tasks/tasksCreates task.
/api/tasks/bugsLists bugs.
/api/tasks/bugsReports bug.
/api/tasks/overviewTasks and bugs overview.
/api/dashboardSystem overview.
/api/dashboard/alertsAlerts.
/api/dashboard/charts/income-expenseIncome/expense chart.
/api/chat/channelsChannels.
/api/chat/channels/:id/messagesSends message.
/api/chat/ws?token=<jwt_token>Realtime chat.
/api/settings/companyCompany settings.
Architecture
Fastify receives the request, validates CORS, verifies JWT when needed, validates input with Zod, runs service logic through Prisma and returns JSON.
JWT token is stored in localStorage. Frontend sends it through Authorization: Bearer <token>. Passwords use bcrypt.
bootstrap creates base roles/settings; email handles SMTP fallback; exchangeRates updates rates every 24h.
Tests, rate limiting, push notifications, CSV import, file uploads, historical metrics and more interactive dashboards.
Support
Run npm install in backend or frontend as needed.
Sync Prisma with npx prisma db push.
Find the process with lsof -i :3001 or lsof -i :5173 and kill the PID.
Make sure backend listens on 0.0.0.0 and VITE_API_URL points to the correct backend.
Check SMTP. In development, the code appears in backend console.