Skip to content

Repository files navigation

Schedulo Logo Schedulo

Schedulo is an open-source work tracking application built with modern web technologies and containerized with Docker. It features a React frontend powered by Vite, a Django REST API backend, and a PostgreSQL database.

Quick Start

Prerequisites

  • Docker and Docker Compose
  • Git

Setup

  1. Clone the repository

    git clone https://github.com/kinneyan/schedulo.git
    cd schedulo
  2. Configure environment variables

    Copy the example environment files and configure them:

    For development:

    cp .env.dev.example .env.dev

    For production:

    cp .env.prod.example .env.prod

    Edit the .env.dev or .env.prod file with your actual configuration values, especially:

    • Database credentials
    • API URLs
    • Any other environment-specific settings
  3. Run the application

    docker compose up -d --build

The application will be available at:

Docker Commands

Development & Deployment

# Run the entire application (development)
docker compose up -d --build

# Rebuild a specific service
docker compose up -d --build --no-deps <APP_NAME>

# View running containers
docker ps

# Stop the application
docker compose down

Container Management

# Execute commands inside containers
docker exec -it <CONTAINER_NAME> <COMMAND>

# Examples:
docker exec -it django python manage.py migrate
docker exec -it postgres psql -U postgres -d postgres

Development

Database Management

# Generate Django migrations
python manage.py makemigrations

# Apply migrations (automatically done on container rebuild)
docker exec -it django python manage.py migrate

Testing

The project includes comprehensive test coverage with both unit and integration tests.

# Run all tests
python manage.py test api.tests --settings=server.settings.tests

# Run only integration tests
python manage.py test api.tests.integration --settings=server.settings.tests

# Run only unit tests
python manage.py test api.tests.unit --settings=server.settings.tests

# Run specific integration test areas
python manage.py test api.tests.integration.auth --settings=server.settings.tests
python manage.py test api.tests.integration.roles --settings=server.settings.tests

Project Structure

schedulo/
├── client/                 # React frontend
├── server/                 # Django backend
│   ├── api/               # Django API app
│   ├── server/            # Django project settings
│   │   └── settings/      # Environment-specific settings
│   └── manage.py
├── docker-compose.yml     # Development configuration
├── Dockerfile             # Multi-stage build for frontend and backend
├── server/pyproject.toml  # Python package metadata and dependencies
├── .env.dev.example       # Development environment template
├── .env.prod.example      # Production environment template
└── README.md

Environment Configuration

Development (.env.dev)

  • DJANGO_ENV=development
  • REACT_ENV=development
  • REACT_PORT=5173
  • Database configuration
  • VITE_API_URL=http://localhost:8000

Production (.env.prod)

  • DJANGO_ENV=production
  • NODE_ENV=production
  • REACT_ENV=production
  • REACT_PORT=5000
  • Production database configuration
  • VITE_API_URL=https://your-domain.com

API Documentation

The Django REST API provides endpoints for:

  • User authentication and authorization
  • Work tracking functionality
  • Data management

API endpoints are available at http://localhost:8000/api/ when running locally.

About

No description, website, or topics provided.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages