A full-stack project management application with Kanban board, built with React + Vite frontend and Node.js + Express + PostgreSQL backend.
- Node.js >= 18.0.0
- PostgreSQL 18.0
- npm >= 9.0.0
-
Navigate to backend directory
cd backend
-
Install dependencies
npm install
-
Environment Configuration
- The
.envfile is already configured with:- Database:
user_management_db(configurable via DB_NAME) - User:
postgres - Password:
root - Port:
5000
- Database:
- The
-
Database is already set up with:
- β Database created (name from DB_NAME env variable)
- β Schema loaded (6 schemas: auth, catalog, project, finance, ops, analytics)
- β Sample data loaded (1 org, 1 user, 5 projects)
-
Start the server
npm start # Production mode npm run dev # Development mode with nodemon
Server will run on:
http://localhost:5000
-
Navigate to frontend directory
cd frontend
-
Install dependencies
npm install
-
Start the development server
npm run dev
Frontend will run on:
http://localhost:5173
npm run db:create # Create the database
npm run db:drop # Drop the database
npm run db:setup # Load schema
npm run db:seed # Load sample data
npm run db:reset # Drop, create, setup, and seed (full reset)The application uses a multi-tenant ERP schema with:
Schemas:
auth- Authentication & organizationscatalog- Master data (currencies, partners, products)project- Project & task managementfinance- Invoices, bills, ordersops- Timesheets, expensesanalytics- Materialized views for reporting
Key Tables:
auth.orgs- Organizationsauth.users- User accountsproject.projects- Projects with Kanban statusesproject.tasks- Tasks and subtasksproject.timesheets- Time tracking
The database is pre-loaded with:
- 1 Organization: GGW Organization
- 1 User: admin@ggw.com (password: admin123)
- 5 Projects:
- Website Redesign (New)
- Mobile App Development (In Progress - 45%)
- Database Migration (In Progress - 75%)
- Security Audit (Completed - 100%)
- API Integration (New)
- β Three status columns: New, In Progress, Completed
- β Drag-and-drop (localStorage for now, API-ready)
- β Create/Edit/Delete projects
- β Progress tracking with visual progress bars
- β Search and sort functionality
- β Manager assignment
- β Tags and categorization
- β Due date tracking
- β Real-time localStorage persistence
- β Backend API integration ready
Projects:
GET /api/projects- List all projectsGET /api/projects/:id- Get single projectPOST /api/projects- Create projectPUT /api/projects/:id- Update projectDELETE /api/projects/:id- Soft delete project
Users:
POST /api/users/register- Register new userPOST /api/users/login- User loginGET /api/users- List users
File Upload:
POST /api/upload- Upload files (multer)
- React 18
- Vite
- React Router
- Tailwind CSS
- Lucide Icons
- Node.js
- Express 4.18
- PostgreSQL 18.0
- pg (node-postgres) 8.11
- bcrypt (password hashing)
- multer (file uploads)
- helmet (security)
- morgan (logging)
- cors
GGW-OdooXAmalthea/
βββ backend/
β βββ config/
β β βββ database.js # PostgreSQL connection pool
β βββ database/
β β βββ oneflow-schema.sql # Complete ERP schema
β β βββ seed-data.sql # Sample data
β βββ routes/
β β βββ users.js # User authentication
β β βββ projects.js # Project CRUD
β β βββ upload.js # File upload
β βββ .env # Environment variables
β βββ server.js # Express server
β βββ package.json
β
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ Navbar.jsx
β β β βββ ProjectCard.jsx
β β β βββ ProjectModal.jsx
β β β βββ ProjectDetails.jsx
β β βββ pages/
β β β βββ ProjectsPage.jsx # Kanban board
β β β βββ DashboardPage.jsx
β β β βββ ...
β β βββ lib/
β β β βββ api.js # API client
β β βββ App.jsx
β β βββ main.jsx
β βββ index.html
β βββ vite.config.js
β βββ package.json
β
βββ README.md # This file
# Node Environment
NODE_ENV=development
# Server
PORT=5000
HOST=0.0.0.0
# Frontend URL (CORS)
FRONTEND_URL=http://localhost:5173
# Database
DB_HOST=localhost
DB_PORT=5432
DB_NAME=user_management_db
DB_USER=postgres
DB_PASSWORD=root
# Connection Pool
DB_POOL_MAX=20
DB_POOL_MIN=5
DB_IDLE_TIMEOUT=30000VITE_API_URL=http://localhost:5000- Backend server running with PostgreSQL connection
- Database schema loaded with 6 schemas
- Sample data loaded (org, user, projects)
- Projects API endpoints functional
- Frontend Kanban board with localStorage
- Create/Edit/Delete projects in UI
- Progress tracking and visualization
- Search and sort functionality
- Responsive design
- Backend: READY β
- Database: CONFIGURED β
- Frontend: USING LOCALSTORAGE (API integration ready)
- Connect frontend to backend API (replace localStorage with API calls)
- Add authentication flow
- Implement real-time updates (WebSockets)
- Add file upload for project attachments
- Implement task management within projects
# Use the database name from your .env file
psql -U postgres -d user_management_db -c "SELECT name, status, progress_pct FROM project.projects;"# Health check
curl http://localhost:5000/health
# Get projects
curl http://localhost:5000/api/projectsOpen browser: http://localhost:5173
Navigate to: Projects page (Kanban board)
If port 5000 is busy, change PORT in backend/.env to another port (e.g., 5001)
- Verify PostgreSQL is running
- Check credentials in
backend/.env - Ensure database exists:
psql -U postgres -l
- Verify backend is running on port 5000
- Check CORS settings in
backend/server.js - Update
VITE_API_URLinfrontend/.envif needed
For issues or questions, please check the codebase or contact the development team.
Status: β Production-Ready Backend | π Frontend Integration Pending Last Updated: November 8, 2025