A full-stack desk and room booking application with team management, recreational chat features, and administrative controls.
- FastAPI (0.109.0) - Modern Python web framework
- Prisma (0.15.0) - Type-safe ORM
- SQLite - Database
- Uvicorn - ASGI server
- Pydantic - Data validation
- Python 3.11+
- Next.js (14.1.0) - React framework
- React (18.2.0) - UI library
- TypeScript - Type safety
- Material-UI (MUI) (7.3.5) - Component library
- Tailwind CSS - Utility-first CSS framework
- React PDF - PDF rendering for floor plans
- Just - Task runner
- Docker & Docker Compose - Containerization
- Python 3.11 or higher
- Node.js 18+ and npm
- Just (optional, but recommended for easier setup)
- Docker and Docker Compose (optional, for containerized deployment)
-
Install Just (if not already installed):
# macOS brew install just # Linux curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin
-
Complete setup (installs dependencies and sets up environment):
just setup
-
Start the application:
just run-all
This will start:
- Backend API at
http://localhost:8000 - Frontend at
http://localhost:3000
-
Navigate to backend directory:
cd backend -
Create virtual environment:
python3 -m venv venv
-
Activate virtual environment:
# macOS/Linux source venv/bin/activate # Windows venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up Prisma database:
prisma generate prisma db push
-
Run the backend:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
-
Navigate to frontend directory:
cd frontend -
Install dependencies:
npm install
-
Run the frontend:
npm run dev
-
Start all services:
just docker-up # or docker-compose up --build -
Stop services:
just docker-down # or docker-compose down
just setup- Complete setup (install dependencies + environment files)just install- Install all dependenciesjust run-all- Run both backend and frontendjust run-backend- Run only the backendjust run-frontend- Run only the frontendjust build- Build frontend for productionjust test- Run all testsjust lint- Lint all codejust format- Format all codejust clean- Clean all dependencies and build artifactsjust docker-up- Start with Docker Composejust docker-down- Stop Docker Compose services
- Username:
Mihai - Password:
employee_2
- Username:
Rebeca - Password:
employee_4
- Username:
manager_1 - Password:
manager_1
- Username:
admin_1 - Password:
admin_1
booking-app/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── api/ # API routes
│ │ ├── core/ # Core configuration
│ │ ├── models/ # Data models
│ │ ├── schemas/ # Pydantic schemas
│ │ └── services/ # Business logic
│ └── prisma/ # Prisma schema and database
├── frontend/ # Next.js frontend
│ └── src/
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components
│ ├── services/ # API services
│ └── types/ # TypeScript types
└── docker-compose.yml # Docker configuration
- Desk and room booking system
- Team management
- Recreational chat for shared spaces
- User role management (Employee, Manager, Admin)
- Booking approvals workflow
- Statistics and analytics
- Floor plan visualization
- Avatar builder
- Points/rewards system
The application uses hot-reload for both backend and frontend during development. Changes to the code will automatically refresh the application.