Skip to content

dizzpy/AstroLift

Repository files navigation

AstroLift 🚀

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.


🧰 Tech Stack

  • Frontend: Next.js
  • Backend: Node.js, Express
  • Containerization: Docker, Docker Compose
  • Tooling: ESLint, Prettier, Husky
  • Testing: Jest (backend)

✅ Prerequisites

Before running the project, make sure you have:

You do NOT need Node.js installed locally if you use Docker.


📦 Clone the Repository

git clone https://github.com/dizzpy/AstroLift.git
cd AstroLift

🔐 Environment Setup

The backend requires environment variables.

1️⃣ Create .env file for backend

Navigate to the backend folder:

cd backend

Create a .env file (this file is required but not committed to Git):

touch .env

Add the following:

PORT=4000

ℹ️ A sample file (.env.example) is already provided for reference.

Go back to the project root:

cd ..

▶️ Run the Project (Docker)

From the project root, run:

docker compose up --build

This will:

  • build the frontend and backend images
  • start both services
  • create a shared Docker network

🛠 Development Mode (Hot Reload)

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 --build

This uses:

  • frontend/Dockerfile.dev (runs next dev)
  • docker-compose.dev.yml (mounts local volumes)

🌐 Access the Application

If both URLs work, the setup is successful ✅


⏹ Stop the Project

Press:

Ctrl + C

Or run in another terminal:

docker compose down

🛠 Development Notes

  • 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

📁 Project Structure (Simplified)

AstroLift/
├── backend/        # Express backend (Dockerized)
├── frontend/       # Next.js frontend (Dockerized)
├── docker-compose.yml
├── README.md
└── docs/           # Additional feature docs (see below)

✅ One Command Rule

Once set up, the entire project can be started with:

docker compose up

No additional setup required.


📚 Docs


📄 License

This project is developed as part of a university coursework and is intended for educational purposes.

About

A full stack gym management and workout tracking system with admin, trainer, and member roles. Includes memberships, workout programs, payments, attendance, and real time updates.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors