Internal business management tool for Astrium Software Solutions — a lightweight CRM and project management dashboard for managing clients, projects, invoices, tasks, meetings, and notes.
- Dashboard — Overview of clients, active projects, pending tasks, and total invoiced amount
- Clients — Manage client contacts (name, email, company)
- Projects — Track projects linked to clients with status management (active, completed, on-hold)
- Invoices — Create itemized invoices with line items, manage lifecycle (draft/sent/paid/cancelled), and generate PDF downloads
- Calendar — Visual calendar view combining tasks and meetings
- Inbox — Shared markdown notepad with live preview
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript, Vite |
| Backend | Node.js, Express 5 |
| Database | SQLite 3 (file: backend/astrium.db) |
| PDFKit | |
| Icons | Lucide React |
- Node.js (v18 or higher recommended)
cd backend && npm install
cd ../frontend && npm installWindows (PowerShell):
./start.ps1Manual (two terminals):
Terminal 1 — Backend:
cd backend
npm startTerminal 2 — Frontend:
cd frontend
npm run dev| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend | http://localhost:5000 |
| API Base | http://localhost:5000/api |
management/
├── start.ps1 # Launch script (starts both servers)
├── backend/
│ ├── server.js # Express API server & routes
│ ├── database.js # SQLite schema & connection
│ ├── migrate.js # Database migration script
│ ├── check_schema.js # Utility: inspect invoice table schema
│ ├── set_vat_zero.js # Utility: reset all invoice tax rates to 0
│ ├── astrium.db # SQLite database file
│ └── package.json
└── frontend/
├── src/
│ ├── App.tsx # All UI components (single-file app)
│ ├── App.css # Component styles
│ ├── index.css # Global styles
│ └── main.tsx # React entry point
└── package.json
- Currency is South African Rand (R)
- Astrium is not registered for VAT — tax rate is hardcoded to 0%
- The database is auto-created on first backend startup