A comprehensive industrial gas cylinder management web application built with Flask and PostgreSQL.
- Customer Management: Complete CRUD operations with Access-compatible field structure
- Cylinder Inventory: Advanced tracking with rental status, custom IDs, and bulk operations
- Rental Management: Real-time tracking with duration calculation and history
- Search & Filter: Global search across customers and cylinders with advanced filtering
- Bulk Operations: Multi-cylinder dispatch and return operations
- Data Export: CSV and PDF reports for customers, cylinders, and rental activities
- Role-Based Access: Admin, User, and Viewer roles with different permissions
- Secure Authentication: Werkzeug password hashing and session management
- User Interface: Clean, responsive Bootstrap 5 design with mobile optimization
- PostgreSQL Database: Robust data storage with SQLAlchemy ORM
- Data Import: MS Access database import functionality with field mapping
- Backup System: Automatic data archiving and backup capabilities
- Performance: Optimized queries with pagination for large datasets
- Python 3.11+
- PostgreSQL database
- Render account (for deployment)
- Clone the repository
- Set environment variables:
DATABASE_URL: PostgreSQL connection stringSESSION_SECRET: Secure session key
- Install dependencies:
pip install -r requirements.txt - Run:
python main.py
- Push code to GitHub repository
- Create PostgreSQL database on Render
- Create web service with configuration from
render.yaml - Set environment variables in Render dashboard
- Deploy automatically via GitHub integration
See RENDER_DEPLOYMENT.md for detailed deployment instructions.
├── app.py # Flask application factory
├── main.py # Application entry point
├── routes.py # Route definitions and logic
├── db_models.py # SQLAlchemy database models
├── db_service.py # Database service layer
├── auth_models.py # User authentication system
├── email_service.py # Email functionality
├── templates/ # Jinja2 HTML templates
├── static/ # CSS, JS, and assets
├── data/ # JSON data files
└── render.yaml # Render deployment configuration
- Backend: Flask, SQLAlchemy, PostgreSQL
- Frontend: Jinja2, Bootstrap 5, Bootstrap Icons
- Deployment: Render.com with PostgreSQL
- Authentication: Custom user management with role-based access
- Reports: ReportLab for PDF generation
- Email: SendGrid integration for notifications
- customers: Customer information and contact details
- cylinders: Cylinder inventory with rental tracking
- rental_history: Complete audit trail of all rental activities
- Foreign key relationships for data integrity
- Indexed fields for performance optimization
- JSON fields for flexible data storage
- Automatic timestamp tracking
- Environment variable protection for secrets
- SQL injection protection via ORM
- Secure password hashing with salt
- Session-based authentication
- Role-based access control
- Database connection pooling
- Pagination for large datasets
- Optimized queries with proper indexing
- Automatic data archiving system
- Gunicorn WSGI server for production
- Follow the coding standards in
replit.md - Add comprehensive comments to new code
- Test database operations thoroughly
- Update documentation for new features
- Ensure mobile responsiveness for UI changes
Proprietary software for industrial gas cylinder management.
For deployment and configuration support, refer to:
RENDER_DEPLOYMENT.mdfor deployment instructions- Application logs for debugging information
- Database logs in Render PostgreSQL dashboard