A full-stack project command center to track software ideas from planning to deployment.
Project Nexus helps you manage projects with timeline context, progress tracking, kanban workflow, documentation uploads, and owner/admin access control in one clean dashboard.
- Authenticated project workspace (register, login, profile, password update)
- Grid + kanban project views with live filtering/search
- Project metadata tracking (status, priority, progress, deadlines, tasks)
- Document uploads per project (up to 5 files/request, 4MB each)
- Access-sharing model (owner/admin/write + shared read-only access)
- Built-in support message flow between users and admin
- Frontend: React 19, Vite
- Backend: Node.js, Express 5
- Database: PostgreSQL (
pg) - Auth: Cookie-based session auth (
cookie-session) - Deployment: Vercel (frontend + serverless API)
src/ # React app (UI, components, API clients)
server/ # Express app, routes, DB, migrations, seed
api/[...all].js # Vercel serverless entry for API
uploads/ # Uploaded project docs (local runtime storage)
DEPLOYMENT.md # Deployment steps for Vercel + Neon
npm installCopy .env.example to .env, then update values for your local machine:
DATABASE_URL=postgresql://postgres:your_password@localhost:5432/project_nexus
PORT=3001
POSTGRES_SSL=false
FRONTEND_ORIGIN=http://localhost:5173
SESSION_SECRET=replace_with_a_long_random_secretNotes:
AUTH_USER_IDandAUTH_PASSWORDare only needed for legacy migration workflows and are not required for normal app login.- No default credentials are required in README setup. Create your account from the app UI after startup.
npm run db:schema
npm run db:migrate:accessOptional sample data:
npm run db:seednpm run dev:all- Frontend:
http://localhost:5173 - API:
http://localhost:3001
Open the app and register a new user from the authentication screen.
For Vercel + Neon deployment, follow:
DEPLOYMENT.md
Required production environment variables:
DATABASE_URLPOSTGRES_SSL=trueSESSION_SECRETFRONTEND_ORIGIN
Base API path: /api
GET /api/health— health checkPOST /api/auth/register/POST /api/auth/login/POST /api/auth/logoutGET /api/auth/me/PUT /api/auth/profile/PUT /api/auth/passwordGET|POST|PUT|DELETE /api/projectsPOST /api/projects/:id/access/DELETE /api/projects/:id/access/:sharedUserIdPOST /api/projects/:id/docs/DELETE /api/projects/:id/docs/:docIdGET|POST /api/support/tickets
- Session auth uses HTTP-only cookies.
- Use a strong
SESSION_SECRETin all environments. - In production, set strict CORS via
FRONTEND_ORIGIN. - Do not commit
.envor real credentials.