82 lines
No EOL
2.3 KiB
Markdown
82 lines
No EOL
2.3 KiB
Markdown
# Inspection Reporting and Management Application
|
|
|
|
A production-ready web application for managing inspection reports, built with Python Flask.
|
|
|
|
## Features
|
|
|
|
- User authentication and authorization
|
|
- Admin panel for user management
|
|
- Inspection creation, editing, and viewing
|
|
- Photo uploads with captions and action requirements
|
|
- PDF export of inspection reports (A4 format)
|
|
- Role-based access control (admin vs regular users)
|
|
- Responsive design with Tailwind CSS
|
|
|
|
## Technology Stack
|
|
|
|
- **Language**: Python 3.11+
|
|
- **Web Framework**: Flask (with Flask-Login, Flask-WTF, Flask-SQLAlchemy)
|
|
- **Database**: SQLite via SQLAlchemy ORM
|
|
- **PDF Generation**: WeasyPrint
|
|
- **TLS/HTTPS**: Self-signed certificate
|
|
- **Frontend**: Jinja2 templates + Tailwind CSS (via CDN) + vanilla JS
|
|
- **Authentication**: Bcrypt password hashing, session-based login
|
|
- **File Storage**: Local filesystem under `/uploads/`
|
|
|
|
## Setup
|
|
> **Note**: After running the setup script, an admin user is created with username `admin` and password `admin`. You can change these credentials after logging in.
|
|
|
|
1. Clone the repository
|
|
2. Run the setup script:
|
|
```bash
|
|
python setup.py
|
|
```
|
|
3. The setup script will:
|
|
- Install dependencies
|
|
- Generate SSL certificates
|
|
- Create the database and run migrations
|
|
- Prompt for admin account details
|
|
4. Start the application:
|
|
```bash
|
|
python run.py
|
|
```
|
|
5. Access the application at https://localhost:5000
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
inspection-app/
|
|
├── app/
|
|
│ ├── __init__.py
|
|
│ ├── models.py
|
|
│ ├── routes/
|
|
│ │ ├── auth.py
|
|
│ │ ├── admin.py
|
|
│ │ ├── inspections.py
|
|
│ │ └── export.py
|
|
│ ├── templates/
|
|
│ │ ├── base.html
|
|
│ │ ├── login.html
|
|
│ │ ├── dashboard.html
|
|
│ │ ├── inspection_form.html
|
|
│ │ ├── inspection_view.html
|
|
│ │ └── admin/
|
|
│ │ ├── users.html
|
|
│ │ └── user_form.html
|
|
│ ├── utils/
|
|
│ │ ├── pdf_generator.py
|
|
│ │ └── security.py
|
|
│ └── static/
|
|
│ ├── css/
|
|
│ └── js/
|
|
├── uploads/
|
|
├── certs/
|
|
├── setup.py
|
|
├── run.py
|
|
├── requirements.txt
|
|
└── .gitignore
|
|
```
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License. |