Skip to content

Getting Started

This guide will help you set up the Time Manager project on your local machine for development.

Prerequisites

Ensure you have the following tools installed on your system:

  • Docker Engine & Docker Compose
  • Node.js (v18+ recommended) & npm (or pnpm/yarn)
  • Python (v3.12+ recommended)
  • Git

Installation

1. Clone the Repository

git clone https://github.com/epitech-msc-1/time-manager.git
cd time-manager

2. Environment Configuration

Create the necessary .env file from the example.

cp .env.example .env

Configuration

Edit .env and fill in any missing secrets, such as database credentials or API keys, before proceeding.

The easiest way to run the full stack (Frontend, Backend, Database) is using Docker Compose.

docker compose up -d --build

This will start:

  • Backend API at http://localhost:8000
  • Frontend App at http://localhost:5173 (or configured port)
  • PostgreSQL Database

4. Verify Installation

Check the status of your containers:

docker compose ps

You should see all services Up and healthy.

Running Locally (Manual Setup)

If you prefer to run services individually without Docker:

Backend (Django)

Navigate to the backend directory:

cd backend

Create a virtual environment and install dependencies:

uv sync
source .venv/bin/activate
1
2
3
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
1
2
3
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Run migrations and start server:

uv run manage.py migrate
uv run manage.py runserver
python manage.py migrate
python manage.py runserver
python3 manage.py migrate
python3 manage.py runserver

Frontend (React)

Navigate to the frontend directory:

cd frontend

Install dependencies and start dev server:

npm install
npm run dev
pnpm install
pnpm dev
yarn install
yarn dev
bun install
bun dev

Troubleshooting

Database Connection Error?

Ensure the POSTGRES_HOST, POSTGRES_USER, and POSTGRES_PASSWORD in your .env match your Docker configuration or local Postgres instance.

Frontend cannot reach API?

Check the VITE_API_URL environment variable in the frontend configuration. It should point to http://localhost:8000 (or your backend URL).