AstroLift is a full-stack web application built with Next.js (frontend) and Node.js + Express (backend).
The project is fully Dockerized and can be run with a single command using Docker Compose.
- Frontend: Next.js
- Backend: Node.js, Express
- Containerization: Docker, Docker Compose
- Tooling: ESLint, Prettier, Husky
- Testing: Jest (backend)
Before running the project, make sure you have:
- Docker Desktop installed and running
https://www.docker.com/products/docker-desktop/ - Git installed
You do NOT need Node.js installed locally if you use Docker.
git clone https://github.com/dizzpy/AstroLift.git
cd AstroLiftThe backend requires environment variables.
Navigate to the backend folder:
cd backendCreate a .env file (this file is required but not committed to Git):
touch .envAdd the following:
PORT=4000ℹ️ A sample file (
.env.example) is already provided for reference.
Go back to the project root:
cd ..From the project root, run:
docker compose up --buildThis will:
- build the frontend and backend images
- start both services
- create a shared Docker network
To run the project in development mode with hot-reloading enabled (changes in code are reflected immediately):
docker compose -f docker-compose.dev.yml up --buildThis uses:
frontend/Dockerfile.dev(runsnext dev)docker-compose.dev.yml(mounts local volumes)
- Frontend: http://localhost:3000
- Backend Health Check: http://localhost:4000/api/health
If both URLs work, the setup is successful ✅
Press:
Ctrl + COr run in another terminal:
docker compose down- All linting, formatting, and commit checks are enforced using Husky
- Docker ensures the same environment for all team members
- Different Node versions are handled automatically via Docker
AstroLift/
├── backend/ # Express backend (Dockerized)
├── frontend/ # Next.js frontend (Dockerized)
├── docker-compose.yml
├── README.md
└── docs/ # Additional feature docs (see below)
Once set up, the entire project can be started with:
docker compose upNo additional setup required.
- Trainer Management & Requests: see docs/TRAINER_MANAGEMENT.md
This project is developed as part of a university coursework and is intended for educational purposes.