Skip to content

Xevion/motophoto

Repository files navigation

MotoPhoto

Event photography marketplace -- photographers upload action sports photos, customers browse and purchase them.

Tech stack: Go (Chi, pgx, sqlc) + SvelteKit 2 (Svelte 5, Bun) + PostgreSQL

Quickstart

Prerequisites

All tools are defined in .mise.toml and managed by mise:

# Install mise (see https://mise.jdx.dev/getting-started.html), then:
mise trust && mise install

This puts go, bun, just, air, sqlc, and other tools on your PATH automatically.

Manual install (without mise)

Install each tool individually:

Go-based tools:

go install github.com/air-verse/air@latest
go install github.com/gzuidhof/tygo@latest
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest

Getting started

git clone <repo-url> && cd motophoto
docker compose up -d db        # Start PostgreSQL
cd web && bun install && cd ..  # Install frontend dependencies
cp .env.example .env            # Configure environment
just dev                        # Start dev servers (Go :3001 + SvelteKit :5173)

Platform notes

  • Linux -- develop natively. Install Docker Engine for local Postgres.
  • Windows -- develop inside WSL 2. Docker Engine installs directly inside WSL.

Commands

All commands are defined in Justfile:

Command What it does
just dev Start both backend (Air) and frontend (Vite) dev servers
just dev -f Frontend only
just dev -b Backend only
just build Full production build (frontend + backend)
just check Parallel checks via tempo (lint, format, build, test, sqlc diff)
just check --fix Auto-format then verify
just lint Run all linters via tempo
just test Run Go tests + Vitest
just format Auto-format all code via tempo
just generate Run sqlc + tygo code generation
just cov Coverage report (octocov)
just docker-build Build Docker image
just docker-run Run Docker image locally
just clean Remove build artifacts
just db Start local Postgres
just db reset Drop and recreate database

Documentation

Guide Covers
Architecture System design, request flow, project structure, deployment
Go Backend Router, handlers, sqlc, error handling, testing
SvelteKit Frontend Routing, data fetching, Svelte 5, configuration
Style Guide Naming, vocabulary, comments, API design, logging

About

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors