Changes between Initial Version and Version 1 of BuildInstructions


Ignore:
Timestamp:
07/01/26 17:25:33 (5 days ago)
Author:
221544
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BuildInstructions

    v1 v1  
     1= Build Instructions =
     2
     3== Development environment ==
     4
     5 * Node.js 20+ and npm
     6 * PostgreSQL client (psql) for running the SQL scripts
     7 * SSH access to the faculty database server (credentials in EPRMS → Databases)
     8 * Operating system: macOS / Linux / Windows
     9
     10== Required software ==
     11
     12 * Node.js and npm (frontend + backend)
     13 * An SSH client (built into macOS/Linux; on Windows use OpenSSH or PuTTY)
     14
     15== Build instructions ==
     16
     17 1. Install dependencies:
     18{{{
     19cd server && npm install
     20cd ../client && npm install
     21}}}
     22 2. Create `server/.env` with the faculty database connection (values from EPRMS → Databases):
     23{{{
     24DATABASE_URL="postgresql://<DB_USER>:<DB_PASSWORD>@localhost:5433/<DB_NAME>?schema=project"
     25SSH_HOST=<SSH_HOST>
     26SSH_USER=<SSH_USER>
     27SSH_PASSWORD=<SSH_PASSWORD>
     28}}}
     29 3. Generate the Prisma client:
     30{{{
     31cd server && npx prisma generate
     32}}}
     33 4. (First time only) create the schema and load sample data through the tunnel:
     34{{{
     35psql "<connection string>" -f database/schema_creation.sql
     36psql "<connection string>" -f database/data_load.sql
     37}}}
     38
     39== Testing instructions ==
     40
     41 1. Open the SSH tunnel to the faculty database (keep this terminal open):
     42{{{
     43./tunnel.sh
     44}}}
     45 The tunnel forwards local port 5433 to the faculty database's PostgreSQL port.
     46 2. Start the backend (second terminal):
     47{{{
     48cd server && npm run dev
     49}}}
     50 3. Start the frontend (third terminal):
     51{{{
     52cd client && npm run dev
     53}}}
     54 4. Open the application at '''http://localhost:5174'''
     55
     56== Demo login ==
     57
     58 * '''Admin:''' admin@ecore.mk / demo1234
     59 * The Admin account can create and assign tasks, and issue invoices.
     60 * Client and Worker accounts are also seeded in project.users to demonstrate the client-view and worker flows.
     61
     62== Main features to test ==
     63
     64 * '''Create + assign a task (UC0001):''' Tasks → New Task → choose client, project, worker → Add Task.
     65 * '''Client project view (UC0002):''' log in as a client to see their own projects and task status.
     66 * '''Issue an invoice (UC0003):''' Invoices → pick a client, add line items → the system computes subtotal, tax, and total.