# Rentman Clone A full-stack clone of Rentman.io, a project-centric SaaS platform for rental and event industries. ## Tech Stack - **Backend:** FastAPI (Python 3.12+), SQLAlchemy 2.0, SQLite/PostgreSQL, Redis, Celery - **Frontend:** React 19, TypeScript, Vite, Tailwind CSS, Radix UI, Zustand, React Query - **Storage:** MinIO (S3-compatible) - **Deployment:** Docker Compose, Coolify ## Getting Started ### Prerequisites - Docker & Docker Compose - Or Python 3.12+, Node.js 20+ ### Quick Start (Docker) ```bash cp .env.example .env # Edit .env if needed make dev ``` This starts: - Backend API at http://localhost:8000 (Swagger at /docs) - Frontend at http://localhost:5173 - Redis at port 6379 - MinIO at ports 9000 (API) and 9001 (Console) ### Local Development (without Docker) #### Backend ```bash cd backend python -m venv venv source venv/bin/activate pip install -r requirements.txt cp ../.env.example .env # adjust DATABASE_URL if needed uvicorn app.main:app --reload ``` #### Frontend ```bash cd frontend npm install npm run dev ``` ### Project Structure ``` . ├── backend/ # FastAPI application │ ├── app/ │ │ ├── main.py # App entry point │ │ ├── core/ # Config, security │ │ ├── db/ # Database setup │ │ ├── models/ # SQLAlchemy models │ │ ├── schemas/ # Pydantic schemas │ │ ├── api/ # API routes │ │ └── services/ # Business logic │ ├── alembic/ # Database migrations │ └── requirements.txt ├── frontend/ # React application │ ├── src/ │ │ ├── components/ # Shared UI components │ │ ├── pages/ # Page components │ │ ├── stores/ # Zustand stores │ │ ├── hooks/ # Custom hooks │ │ └── lib/ # Utilities │ └── package.json ├── docker-compose.yml ├── Makefile └── .env.example ``` ## Environment Variables See `.env.example` for all required variables. Key ones: | Variable | Description | |----------|-------------| | DATABASE_URL | Database connection string (SQLite for dev) | | JWT_SECRET_KEY | Secret for signing JWT tokens | | REDIS_URL | Redis connection URL | | MINIO_ACCESS_KEY / MINIO_SECRET_KEY | MinIO credentials | | CORS_ORIGINS | Allowed origins for CORS | ## Available Scripts ```bash make dev # Start all services make install-backend # Install Python dependencies make install-frontend # Install npm dependencies make migrate # Run database migrations make create-migration MSG="description" # Create new migration make clean # Clean cache files ``` ## API Documentation Once the backend is running, visit: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## License MIT