CoolFace
Apppublic

imajij/parallel-dashboard

sourceHugging Faceupdated 3mo agoView on Hugging Face
1likes
App README

Parallel — Internship Dashboard

Manage two (or more) remote internships in parallel: track projects through a flow, log progress, record blockers, post updates, and log hours. React + Express + MongoDB, single login, responsive (laptop + mobile).

client/   Vite + React UI (the Parallel design)
server/   Express API + Mongoose models + JWT auth

1. Install

bash
npm run install:all

2. Configure the server

bash
cp server/.env.example server/.env

Fill in server/.env:

  • MONGO_URI — your MongoDB Atlas connection string (Atlas → cluster → ConnectDrivers). Add a database name, e.g. …/parallel. In Atlas → Network Access, allow your IP (or 0.0.0.0/0 to reach it from anywhere).
  • JWT_SECRET — any long random string.
  • ADMIN_EMAIL — the email you'll log in with.
  • ADMIN_PASSWORD_HASH — generate from your chosen password:
bash
  npm run hash -- "your-password"

Paste the printed hash as the value.

3. (Optional) Seed demo data

Populates two example internships with projects/tasks/blockers/hours so the dashboard isn't empty. Clears existing data first.

bash
npm run seed

4. Run (development)

bash
npm run dev
  • API: http://localhost:4000
  • App: http://localhost:5173 ← open this, log in with your email + password.
No Atlas yet / want a local DB? docker compose up -d and set MONGO_URI=mongodb://localhost:27017/parallel in server/.env.

5. Production / "on the go"

Build the client and let the server serve it:

bash
npm run build      # outputs client/dist
npm start          # serves API + app on PORT (default 4000)

Deploy server/ to any Node host (Render, Railway, Fly, a VPS). Set the same env vars there, run npm --prefix client install && npm run build in the build step, then npm start. Point your phone's browser at the deployed URL — same login works everywhere.

6. Deploy with Docker (recommended)

One image builds the client and serves it from the API on port 7860.

bash
docker build -t parallel .
docker run -p 7860:7860 \
  -e MONGO_URI="your-atlas-uri" \
  -e JWT_SECRET="long-random-string" \
  -e ADMIN_EMAIL="you@example.com" \
  -e ADMIN_PASSWORD_HASH="$(npm run --silent hash -- 'your-password')" \
  parallel

Open http://localhost:7860.

Hugging Face Spaces

This works on a Docker Space (not a static one).

  1. 1.Create a new Space → SDK: Docker (blank template).
  2. 2.Push this repo to the Space (the YAML front-matter at the top of this README tells HF to build the Dockerfile and expose port 7860).
  3. 3.Space → Settings → Variables and secrets, add as secrets: MONGO_URI, JWT_SECRET, ADMIN_EMAIL, ADMIN_PASSWORD_HASH.
  4. 4.In MongoDB Atlas → Network Access, allow 0.0.0.0/0 (Spaces have no fixed IP).
  5. 5.The Space builds and serves the app — open it on your laptop or phone.
GitHub Pages won't work — it only serves static files, so there's no Node server or database to run the API/login. Use the Docker Space (or any Node host) instead.

Data model

InternshipProject (status = the flow: backlog → active → review → blocked → done; plus a progress %) → Task, Blocker, Update. HoursLog powers the weekly chart, program rings, streak and focus calendar.

It's a single-user app (one login), built multi-user-ready on the data side.