Django_Basic_Manufacturing/README.md
2025-08-19 12:28:49 +07:00

243 lines
7.3 KiB
Markdown

# Manufacturing App
A comprehensive Django-based manufacturing management application with modern UI, user permissions, and database management capabilities.
## Features
### 🏭 Core Manufacturing
- **Simple Manufacturing Orders**: Input end product results without complex BOM requirements
- **Production Tracking**: Monitor daily, weekly, and monthly production metrics
- **Cost Management**: Track labor and overhead costs for manufacturing orders
- **Edit/Delete Orders**: Admin/superuser can edit or delete manufacturing orders
### 📦 Inventory Management
- **Product Management**: Complete product catalog with categories, pricing, and stock levels
- **Stock Movements**: Track all inventory movements (in/out, adjustments, sales, purchases)
- **Low Stock Alerts**: Automatic notifications for products below minimum stock levels
### 🛒 Purchase Management
- **Supplier Management**: Comprehensive supplier database with ratings and contact information
- **Purchase Orders**: Create and track purchase orders with multiple items
- **Receipt Management**: Track received goods and update inventory automatically
### 💰 Sales Management
- **Customer Management**: Customer database with different types (retail, wholesale, corporate)
- **Sales Orders**: Create sales orders with discounts and shipping costs
- **Delivery Tracking**: Monitor order status and delivery progress
### 👥 User Management
- **Group-Based Access**: Users assigned to groups with specific permissions
- **Permission System**: Granular permissions for different modules
- **User Groups**: Custom permission groups for team management (one group per user)
- **Dashboard Access**: Controlled access to dashboard based on permissions
### 📊 Dashboard & Reporting
- **Real-time Dashboard**: Live production, sales, and purchase statistics
- **Charts & Graphs**: Visual representation of key metrics using Chart.js
- **Profit/Loss Analysis**: Simple profit margin calculations
- **Inventory Turnover**: Track stock movement patterns
### 🗄️ Database Management
- **Backup & Restore**: Full database backup and restoration capabilities
- **Database Duplication**: Create copies for testing and development
- **SQLite Support**: Currently uses SQLite (easily switchable to PostgreSQL)
## Technology Stack
- **Backend**: Django 4.2.7
- **Database**: SQLite (PostgreSQL ready)
- **Frontend**: Bootstrap 5, Chart.js
- **Authentication**: Django's built-in auth with custom user model
- **Forms**: Django Crispy Forms with Bootstrap 5 styling
## Installation & Setup
### Prerequisites
- Python 3.8 or higher
- pip (Python package installer)
### 1. Clone the Repository
```bash
git clone <repository-url>
cd basic_manufacture_app
```
### 2. Create Virtual Environment
```bash
python -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activate
```
### 3. Install Dependencies
```bash
pip install -r requirements.txt
```
### 4. Environment Configuration
Create a `.env` file in the project root:
```env
SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
```
### 5. Database Setup
```bash
# Create database tables
python manage.py makemigrations
python manage.py migrate
# Create superuser
python manage.py createsuperuser
```
### 6. Run the Application
```bash
python manage.py runserver
```
The application will be available at `http://127.0.0.1:8000/`
## User Types & Permissions
Users are now managed through groups with specific permissions. Each user can belong to only one group.
### 🦸 Superuser
- Access to all modules and features
- User and group management
- Database management capabilities
- System configuration
### User Groups
The system includes the following default groups with predefined permissions:
- **Administrators**: Full access to all modules
- **Managers**: Manufacturing, inventory, purchase, and sales access with reporting
- **Operators**: Manufacturing operations, inventory management, and sales operations
- **Viewers**: Read-only access to reports and dashboard
## Database Management
### Backup Database
1. Navigate to Database Management (Admin only)
2. Click "Create Backup"
3. Backup files are saved in the `backups/` folder with timestamps
### Restore Database
1. Select a backup file (.sqlite3 or .db)
2. Confirm the restoration
3. A safety backup is automatically created before restoration
## Switching to PostgreSQL
To switch from SQLite to PostgreSQL:
1. Install PostgreSQL adapter:
```bash
pip install psycopg2-binary
```
2. Update `settings.py`:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'your_db_name',
'USER': 'your_db_user',
'PASSWORD': 'your_db_password',
'HOST': 'localhost',
'PORT': '5432',
}
}
```
3. Run migrations:
```bash
python manage.py migrate
```
## Project Structure
```
basic_manufacture_app/
├── manufacture_app/ # Main Django project
│ ├── settings.py # Project settings
│ ├── urls.py # Main URL configuration
│ └── wsgi.py # WSGI configuration
├── core/ # Core app (dashboard, database management)
├── users/ # User management app
├── inventory/ # Inventory management app
├── manufacture/ # Manufacturing app
├── purchase/ # Purchase management app
├── sales/ # Sales management app
├── templates/ # HTML templates
├── static/ # Static files (CSS, JS, images)
├── requirements.txt # Python dependencies
└── README.md # This file
```
## Usage Examples
### Creating a Manufacturing Order
1. Navigate to Manufacturing → New Order
2. Select product and enter quantity
3. Add labor and overhead costs
4. Save the order (automatically updates inventory)
### Editing a Manufacturing Order
1. Navigate to Manufacturing → Order List
2. Click on the order to view details
3. Click "Edit" button (admin/superuser only)
4. Modify order details and save
### Managing Inventory
1. Go to Inventory → Products
2. Add new products with categories and pricing
3. Set minimum and maximum stock levels
4. Monitor stock movements and alerts
### Processing Sales
1. Create sales order with customer details
2. Add products with quantities and prices
3. Apply discounts if applicable
4. Update order status as it progresses
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Support
For support and questions:
- Create an issue in the repository
- Contact the development team
- Check the documentation
## Roadmap
- [ ] Advanced BOM (Bill of Materials) support
- [ ] Work order scheduling
- [ ] Quality control management
- [ ] Advanced reporting and analytics
- [ ] Mobile application
- [ ] API endpoints for external integrations
- [ ] Multi-warehouse support
- [ ] Advanced forecasting tools
---
**Note**: This is a basic manufacturing application designed for simplicity and ease of use. For complex manufacturing operations, consider additional features like BOM management, work order scheduling, and quality control systems.