Files
app-service/README.md
matteoscrugli 8c4a555b88 Add comprehensive backend features and mobile UI improvements
Backend:
- Add 2FA authentication with TOTP support
- Add API keys management system
- Add audit logging for security events
- Add file upload/management system
- Add notifications system with preferences
- Add session management
- Add webhooks integration
- Add analytics endpoints
- Add export functionality
- Add password policy enforcement
- Add new database migrations for core tables

Frontend:
- Add module position system (top/bottom sidebar sections)
- Add search and notifications module configuration tabs
- Add mobile logo replacing hamburger menu
- Center page title absolutely when no tabs present
- Align sidebar footer toggles with navigation items
- Add lighter icon color in dark theme for mobile
- Add API keys management page
- Add notifications page with context
- Add admin analytics and audit logs pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 22:27:32 +01:00

110 lines
2.5 KiB
Markdown

# Service App
Modern web application for service management. Built with React, FastAPI, and SQLite.
## Features
- User management (admin)
- Authentication (JWT) + 2FA (TOTP) + API keys
- Active sessions (view/revoke)
- Audit log + analytics (admin)
- In-app notifications
- Modern, responsive UI with theming
- Fully containerized with Docker
## Technology Stack
### Frontend
- React 19 + TypeScript
- Vite (build tool)
- React Router
- Axios
### Backend
- FastAPI (Python 3.11+)
- SQLAlchemy 2.0 (ORM)
- SQLite (Database)
- Alembic (migrations)
- JWT authentication
### Infrastructure
- Docker + Docker Compose
## Quick Start
### Prerequisites
- Docker and Docker Compose
- Git
### Installation
1. Clone the repository:
```bash
git clone <repository-url>
cd <repository-folder>
```
2. Copy environment variables:
```bash
cp .env.example .env
# Edit .env with your configuration
```
3. Generate secret key:
```bash
openssl rand -base64 32
# Add to .env as SECRET_KEY
```
4. Start all services:
```bash
docker-compose up -d
```
5. Access the application:
- Frontend: http://localhost:5174
- Backend API: http://localhost:5174/api/v1
- API Documentation: http://localhost:5174/docs
## Project Structure
```
.
├── docker-compose.yml
├── backend/ # FastAPI application
│ ├── app/
│ │ ├── api/ # API routes
│ │ ├── models/ # SQLAlchemy models
│ │ ├── schemas/ # Pydantic schemas
│ │ ├── services/ # Business logic
│ │ └── main.py # Entry point
│ └── alembic/ # Database migrations
├── frontend/ # React application
│ └── src/
│ ├── components/ # React components
│ ├── pages/ # Page components
│ ├── api/ # API client
│ └── hooks/ # Custom hooks
└── scripts/ # Utility scripts
```
## Configuration
### Environment Variables
See `.env.example` for all available configuration options.
Key variables:
- `SECRET_KEY`: JWT secret key
- `ALLOWED_HOSTS`: CORS configuration
### Persistent Data
- SQLite database: `sqlite:////config/config.db` (bind-mounted via `./config:/config`)
- Uploads: `/config/uploads` by default (can be overridden with `FILE_STORAGE_PATH`)
## Contributing
Feel free to fork and customize for your needs.