Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/DincaAlex/unilink/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks you through cloning the repository, installing dependencies across all three package manifests, and booting the full-stack development environment. By the end you will have the Express API running on port 3001, the Vite dev server on port 5173, and a pre-seeded SQLite database ready to explore with the demo accounts.

Prerequisites

  • Node.js 20 or later — the backend uses node --watch, a built-in file-watcher introduced in Node 18 and stabilised in Node 20. Check your version with node -v.

Steps

1

Clone the repository

Download the project source to your local machine:
git clone https://github.com/DincaAlex/unilink.git
cd unilink
2

Install dependencies

The project has three independent package.json files — one at the repo root (which provides concurrently), one for the backend, and one for the frontend. Install all three:
npm install
npm install --prefix server
npm install --prefix sanmarcos-jobs
Each command is isolated to its own directory and will not interfere with the others.
3

Start the dev server

From the repo root, run the single dev script:
npm run dev
Under the hood this uses concurrently to launch both processes at once:
ProcessCommandURL
Backend (Express)node --watch index.jshttp://localhost:3001
Frontend (Vite)vitehttp://localhost:5173
Both processes stream their logs to the same terminal, colour-coded blue for the backend and green for the frontend. The backend hot-reloads automatically whenever you save a file inside server/.
4

Open the app

Once both processes report that they are ready, open your browser to:
http://localhost:5173
You should see the UniLink login screen.
5

Log in with a demo account

UniLink ships with two pre-seeded accounts. Head to Demo Accounts for credentials, or use the “Ver como estudiante” / “Ver como empresa” auto-fill buttons on the login screen.

Database seeding

On the very first run, the backend creates server/data.sqlite (in WAL mode) and seeds it automatically. The initial dataset includes 14 job listings, one student profile, and one company profile, along with both demo user accounts. You do not need to run any migration or seed script manually.

Resetting the database

To wipe the database and start fresh, stop the backend process, then delete server/data.sqlite — and server/data.sqlite-wal and server/data.sqlite-shm if they exist. The next time you run npm run dev, the backend will recreate and re-seed the database from scratch.

Port conflict troubleshooting

If npm run dev fails to bind to port 3001 or 5173, a previous process is likely still holding the port. Identify and terminate it before retrying.On Windows:
netstat -ano | findstr "3001 5173"
Note the PID in the last column, then:
taskkill /PID <pid> /F
On macOS / Linux:
lsof -ti :3001 | xargs kill -9
lsof -ti :5173 | xargs kill -9

Build docs developers (and LLMs) love