This repository hosts two independent backend services, each in its own folder with its own
dependency manifest, env files, and Dockerfile:
| Folder | Stack | Purpose |
|---|---|---|
python-service/ |
Python 3.12 / FastAPI / MongoDB (+ SQLite fallback) | The original Skillovate V2 API |
node-api/ |
Node.js / Express / PostgreSQL (Google Cloud SQL) | Clean-architecture REST API, RBAC, JWT + Google OAuth |
Neither service's code was touched by the other's setup — see each folder's own README.md for
architecture and REQUIREMENTS.md for prerequisites.
- Added the full Node/Express/PostgreSQL API (16-table schema, RBAC, JWT + Google OAuth, clean architecture, deployment docs) — originally scaffolded at the repo root.
- Removed ~19 stale one-off debug/migration scripts that had accumulated at the repo root
(
fix_db*.py,migrate_to_mongo.py,sync_sqlite_to_mongo.py,query_db*.py,test_hash.py,change_admin_pass.py,check.py,test-login.js, aquery.jswith a hardcoded DB password, an emptyskillovate.db, and an unusedmain.pystub) and ~60 committed__pycache__/*.pycfiles; added the right patterns to.gitignoreso they don't return. - Reorganized the repo root: what used to be a flat mix of Python and Node config files is now
split into
python-service/andnode-api/, each self-contained.Dockerfile.nodewas renamed to plainDockerfileinsidenode-api/(the.nodeextension was being misread as a compiled Node binary by some tooling, and the suffix was only there to avoid colliding with the Python service'sDockerfilewhen both sat in the same folder — no longer needed once separated). - Found and relocated
seed_mongo.py(created outside this cleanup, containing a hardcoded plaintext MongoDB Atlas password) intopython-service/— that credential should be rotated; see the security note inpython-service/README.md.
| Service | URL |
|---|---|
| Frontend | http://localhost:5173 (or 3000 for the existing Next.js app) |
| Node API | http://localhost:5000 |
| Python service | http://localhost:8000 |