Claude Agent df4031d99c feat: Space Booking System - MVP complet
Sistem web pentru rezervarea de birouri și săli de ședință
cu flux de aprobare administrativă.

Stack: FastAPI + Vue.js 3 + SQLite + TypeScript

Features implementate:
- Autentificare JWT + Self-registration cu email verification
- CRUD Spații, Utilizatori, Settings (Admin)
- Calendar interactiv (FullCalendar) cu drag-and-drop
- Creare rezervări cu validare (durată, program, overlap, max/zi)
- Rezervări recurente (săptămânal)
- Admin: aprobare/respingere/anulare cereri
- Admin: creare directă rezervări (bypass approval)
- Admin: editare orice rezervare
- User: editare/anulare rezervări proprii
- Notificări in-app (bell icon + dropdown)
- Notificări email (async SMTP cu BackgroundTasks)
- Jurnal acțiuni administrative (audit log)
- Rapoarte avansate (utilizare, top users, approval rate)
- Șabloane rezervări (booking templates)
- Atașamente fișiere (upload/download)
- Conflict warnings (verificare disponibilitate real-time)
- Integrare Google Calendar (OAuth2)
- Suport timezone (UTC storage + user preference)
- 225+ teste backend

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:51:29 +00:00

Space Booking System

Web application for booking offices and meeting rooms with administrative approval flow.

Tech Stack

Backend:

  • FastAPI 0.115+ (Python 3.12+)
  • SQLAlchemy 2.0 (ORM)
  • SQLite database
  • JWT authentication
  • Uvicorn (ASGI server)

Frontend:

  • Vue.js 3.4+
  • Vite 5.x (build tool)
  • Pinia (state management)
  • Vue Router 4.x
  • TypeScript
  • FullCalendar (calendar view)

Getting Started

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • npm or yarn

Backend Setup

cd backend

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Seed database with demo users
python seed_db.py

# Run development server
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Backend will be available at: http://localhost:8000

API documentation: http://localhost:8000/docs

Frontend Setup

cd frontend

# Install dependencies
npm install

# Run development server
npm run dev

Frontend will be available at: http://localhost:5173

Demo Accounts

After seeding the database:

Development Commands

Backend

cd backend

# Type checking
mypy app/

# Linting
ruff check .

# Format code
ruff format .

# Run tests
pytest

# Run with auto-reload
uvicorn app.main:app --reload

Frontend

cd frontend

# Type checking
npm run typecheck

# Linting
npm run lint

# Build for production
npm run build

# Preview production build
npm run preview

Project Structure

space-booking/
├── backend/
│   ├── app/
│   │   ├── api/          # API endpoints
│   │   ├── core/         # Core utilities (config, security)
│   │   ├── db/           # Database session
│   │   ├── models/       # SQLAlchemy models
│   │   ├── schemas/      # Pydantic schemas
│   │   └── main.py       # FastAPI application
│   ├── tests/            # Backend tests
│   ├── requirements.txt
│   └── seed_db.py        # Database seeding script
├── frontend/
│   ├── src/
│   │   ├── assets/       # CSS and static assets
│   │   ├── components/   # Vue components
│   │   ├── router/       # Vue Router configuration
│   │   ├── services/     # API services
│   │   ├── stores/       # Pinia stores
│   │   ├── types/        # TypeScript types
│   │   ├── views/        # Page components
│   │   ├── App.vue       # Root component
│   │   └── main.ts       # Application entry
│   └── package.json
└── README.md

Features

Implemented (US-001)

  • User authentication with JWT
  • Login page with email/password
  • Protected routes
  • Token storage and validation
  • Redirect to dashboard on successful login
  • Role-based access (admin/user)

Coming Soon

  • Space management (CRUD)
  • Booking calendar view
  • Booking request system
  • Admin approval workflow
  • Notifications
  • Audit log

API Endpoints

Authentication

  • POST /api/auth/login - Login with email and password

Health

  • GET / - API info
  • GET /health - Health check

License

MIT

Description
Space Booking Application - Aplicație pentru rezervarea spațiilor
Readme 636 KiB
Languages
Python 51.2%
Vue 43.3%
TypeScript 4.4%
CSS 0.5%
Shell 0.4%
Other 0.1%