A lightweight SaaS portal for clients to submit feedback (bugs, invoices, files) and convert it into structured data for insights.
- 🔐 Authentication (Register/Login)
- 👤 Role-Based Access Control (RBAC)
- 🐞 Submit & track issues with file attachments
- 📊 Dashboard for feedback insights
- 🐳 One-command Dockerized deployment
| Layer | Technology |
|---|---|
| Frontend | SvelteKit |
| Backend | FastAPI |
| Database | PostgreSQL |
| Auth | Cookie/Session or JWT (based on impl) |
| DevOps | Docker + Docker Compose |
git clone https://github.com/Adarshkumar03/mini-saas.git
cd mini-saasCreate a .env file in the backend with:
# backend/.env
DATABASE_URL="postgresql://postgres:password@db:5432/mini_saas"
SECRET_KEY="your_secret_key_here"
ALGORITHM="HS256"
ACCESS_TOKEN_EXPIRE_MINUTES=30Create a .env file in the frontend with:
# frontend/.env
VITE_PUBLIC_API_BASE_URL="http://localhost:8000"Update credentials as per your local setup.
- Docker Compose Setup
Ensure you have Docker and Docker Compose installed. The project comes with
docker-compose.example.yml
frontend/Dockerfile.example
backend/Dockerfile.example
files to set up the environment, change the names to docker-compose.yml, Dockerfile, and Dockerfile respectively.
cd docker
docker compose up --build -dThis will launch:
- FastAPI backend on
http://localhost:8000 - SvelteKit frontend on
http://localhost:3000 - PostgreSQL database
Once up:
- Access frontend: http://localhost:3000
- Backend API docs: http://localhost:8000/api/docs
| Endpoint | Method | Description |
|---|---|---|
api/v1/auth/register |
POST | Register a new user |
api/v1/auth/login |
POST | Login and get token |
api/v1/issues/ |
GET | List all issues |
api/v1/issues/ |
POST | Submit a new issue |
api/v1/users/me |
GET | Get current user info |
See full OpenAPI docs at
/docs
# Backend (FastAPI)
cd docker
docker-compose exec backend sh -c "PYTHONPATH=. pytest --cov=app"
# Frontend (SvelteKit + Playwright)
cd frontend
npx playwright testContributions are welcome!
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m "Add feature" - Push and open a PR