nthinspectiontool/README.md

2.3 KiB

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:
    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:
    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.