Skip to content

ZideStudio/SlotFinder

Repository files navigation

SlotFinder

No more endless discussions to find a date: let us suggest the best times that suit everyone.

Development Setup

You have two options to set up your development environment:

  1. Dev Container (Recommended) - Complete development environment in Docker with IDE integration
  2. Local Setup - Traditional setup on your host machine

Option 1: Dev Container (Recommended)

Quick Start

  1. Prerequisites

  2. Open in Container

    # Clone the repository
    git clone https://github.com/ZideStudio/SlotFinder
    cd SlotFinder
    
    # Open in VS Code
    code .
    # Then: Cmd/Ctrl+Shift+P → "Dev Containers: Reopen in Container"
    
    # OR open in Zed
    zed .
    # Then: Cmd/Ctrl+Shift+P → "projects: open dev container"
  3. Wait for Setup

    • The container builds automatically
    • Infrastructure services start automatically (Traefik, PostgreSQL)
  4. Start the application

    Run the following command inside the container (or use the VS Code task make: start):

    make
  5. Start Coding!

Option 2: Local Setup (with Docker)

Clone the repository

git clone https://github.com/ZideStudio/SlotFinder
cd SlotFinder

Install toolchain versions with mise (Node, npm, Go)

mise install

Set up environment variables

Clone the env back/.env.model file to back/.env and modify the variables as needed.

Note that the default values prefixed with DB_ are already set and work with the dockerized development environment. You can change them if you want to connect to an external database.

Generate JWT RSA keys

The backend uses RSA key pairs to sign and verify JWTs. Generate them with:

openssl genrsa -out back/config/jwt/private.pem 4096
openssl rsa -in back/config/jwt/private.pem -pubout -out back/config/jwt/public.pem

The paths are configured via AUTH_PRIVATE_PEM_PATH and AUTH_PUBLIC_PEM_PATH in back/.env (defaults already point to config/jwt/private.pem and config/jwt/public.pem).

Start the development environment

make docker-deps
make start

Access the application:

To stop infrastructure:

make docker-deps-down

Note: The development environment uses self-signed certificates. Your browser will show a security warning - this is normal for local development. You can safely proceed by clicking "Advanced" > "Proceed to localhost".

Database Access

Connect to the development database:

Host: localhost
Port: 5432
Username: slotfinder
Password: slotfinder
Database: slotfinder

Example connection:

psql -h localhost -p 5432 -U slotfinder -d slotfinder

Infrastructure Commands

Start and stop Docker services (Traefik + PostgreSQL):

Host Mode (use when running frontend & backend on your machine, not in a dev container):

make docker-deps       # Start Traefik + PostgreSQL
make docker-deps-down  # Stop services

Application Commands

make                # Start frontend and backend
make start          # Start frontend and backend
make front          # Start frontend only
make back           # Start backend only (with hot reload)
make storybook      # Start Storybook

Technology Stack

  • Frontend: React with Rsbuild, TypeScript, Sass
  • Backend: Go with Gin framework, PostgreSQL
  • Development: Docker Compose with Traefik reverse proxy
  • Hot Reload: Automatic updates for both frontend and backend

License

This project is licensed under the MIT License, see the LICENSE file for details.

About

Friends can finally set availability times to easily find a common slot!

Resources

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages