PlugHub Inventory Management SystemPlugHub Inventory Management System
A powerful Django-based inventory system that simplifies stock tracking, sales management, and reporting.PlugHub Inventory Management System
A powerful Django-based inventory system that simplifies stock tracking, sales management, and re...
Overview
🧾 PlugHub Inventory Management System — Django-Based Web Application
PlugHub Inventory Management System (PlugHub IMS) is a powerful and production-ready web application built with Python (Django Framework), designed to help businesses manage products, stock, sales, and expenses in one organized platform.
It’s perfect for small to medium enterprises (SMEs), retail stores, wholesalers, and online sellers who want to automate and track their inventory without needing expensive SaaS subscriptions.
Features
🚀 Key Features
- 📦 Product Management — Add, edit, and categorize products with complete details such as SKU, cost, price, and stock level.
- 📊 Dashboard Analytics — Get a clear overview of your total sales, expenses, and inventory performance.
- 💰 Sales & Expenses Tracking — Record transactions and monitor business growth with real-time updates.
- 👥 User Management — Role-based access control for admin and staff accounts.
- 📈 Reports & Insights — Generate sales and expense summaries for smart business decisions.
- ⚙️ Fully Configurable — Edit business details, logo, and system name right from the dashboard.
- 🌐 Secure & Scalable — Built on Django with PostgreSQL, ready for deployment on Ubuntu or any VPS.
Requirements
⚙️ System Requirements
🧱 Server Requirements
- Python: 3.10 or higher
- Django: 4.0 or higher
- Database: PostgreSQL (recommended) or SQLite (for testing/demo)
- Web Server: Nginx or Apache (for production)
- Application Server: Gunicorn or uWSGI
- Operating System: Ubuntu 22.04 LTS or any Linux-based system
- Storage: Minimum 512 MB free disk space
- Memory: 1 GB RAM or more (recommended 2 GB+)
💻 Local Development Requirements
- Python 3.10+ installed
- Git (for version control)
- Virtual environment (venv or pipenv)
- PostgreSQL or SQLite
- Text editor or IDE (VS Code, PyCharm, Sublime Text, etc.)
Instructions
PlugHub Inventory Management System — How to Use
Setup & usage for both developers and end-users. Save this as your project’s README.md if you like.
For Developers (Local & Server)
(recommended)
/srv/plughub/
├─ app/ # Django project root (manage.py lives here if you prefer)
├─ venv/ # Python virtualenv
├─ staticfiles/ # Collected static files (prod)
├─ media/ # User uploads (images, docs, etc.)
├─ .env # Environment variables (DO NOT COMMIT)
└─ requirements.txt
If your repo’s root already has manage.py, treat that folder as your in commands below.
2) Prerequisites
- Python 3.10+
- PostgreSQL (prod recommended; SQLite OK for dev)
- Git
- Ubuntu 22.04 LTS (or any Linux) for server
- Optional (production): Nginx, Gunicorn, Certbot, systemd
3) Clone & Virtual Environment
# Local (or on server)
cd /srv
sudo mkdir -p /srv/plughub && sudo chown -R "$USER":"$USER" /srv/plughub
cd /srv/plughub
# Clone your code
git clone app
cd app
# Create & activate venv
python3 -m venv ../venv
source ../venv/bin/activate
# Install deps
pip install -U pip wheel
pip install -r requirements.txt
4) Environment Variables (.env)
Create /srv/plughub/.env (production) or .env in project root (dev). Example:
# Django
DEBUG=True
SECRET_KEY=replace-with-a-strong-secret
ALLOWED_HOSTS=localhost,127.0.0.1,plughub-ims.com
# Database (PostgreSQL)
DB_NAME=plughub
DB_USER=plughub
DB_PASSWORD=yourpassword
DB_HOST=127.0.0.1
DB_PORT=5432
# Static/Media (prod)
STATIC_ROOT=/srv/plughub/staticfiles
MEDIA_ROOT=/srv/plughub/media
# Branding / Business (optional examples)
BUSINESS_NAME=PlugHub Gadgets & Accessories
CURRENCY=PHP
In settings.py, ensure you load .env (via python-dotenv) and map these to DATABASES, STATIC_ROOT, MEDIA_ROOT, etc.
5) Database Setup (PostgreSQL)
# On Ubuntu server
sudo -u postgres psql
CREATE DATABASE plughub;
CREATE USER plughub WITH ENCRYPTED PASSWORD 'yourpassword';
GRANT ALL PRIVILEGES ON DATABASE plughub TO plughub;
q
6) Migrations & Superuser
# From project root (where manage.py is)
source ../venv/bin/activate # if not already
python manage.py migrate
python manage.py createsuperuser
7) Run Locally (Dev)
python manage.py runserver 0.0.0.0:8000
Visit: http://localhost:8000/
8) Collect Static (Prod)
# Make sure these exist and are writable by the app user
mkdir -p /srv/plughub/staticfiles /srv/plughub/media
chmod -R u+rwX,go+rX /srv/plughub/staticfiles /srv/plughub/media
# Collect
python manage.py collectstatic --noinput
9) Production with Gunicorn + Nginx (Quick Start)
Gunicorn test run:
# From project root
../venv/bin/gunicorn --bind 0.0.0.0:8001 your_django_project.wsgi:application
systemd service /etc/systemd/system/plughub.service:
[Unit]
Description=Gunicorn for PlugHub (Django)
After=network.target
[Service]
User=plughub
Group=plughub
WorkingDirectory=/srv/plughub/app
EnvironmentFile=/srv/plughub/.env
ExecStart=/srv/plughub/venv/bin/gunicorn your_django_project.wsgi:application
--bind 127.0.0.1:8001 --workers 3 --timeout 120
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable plughub
sudo systemctl start plughub
sudo systemctl status plughub --no-pager
Nginx site /etc/nginx/sites-available/plughub:
server {
server_name plughub-ims.com;
client_max_body_size 20M;
location /static/ {
alias /srv/plughub/staticfiles/;
}
location /media/ {
alias /srv/plughub/media/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
sudo ln -s /etc/nginx/sites-available/plughub /etc/nginx/sites-enabled/plughub
sudo nginx -t
sudo systemctl reload nginx
HTTPS (Let’s Encrypt):
sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d plughub-ims.com
10) Deployment & Updates (Zero-fuss rsync approach)
- Upload new build to /tmp/plughub_staging//
- Sync to /srv/plughub/app/ (exclude env, venv, media, staticfiles):
sudo rsync -a --delete
--exclude '.env'
--exclude 'venv/'
--exclude 'media/'
--exclude 'staticfiles/'
/tmp/plughub_staging// /srv/plughub/app/
- Migrate, collect static, restart:
cd /srv/plughub/app
source ../venv/bin/activate
python manage.py migrate
python manage.py collectstatic --noinput
sudo systemctl restart plughub
11) Backups
# DB
PGPASSWORD=yourpassword pg_dump -U plughub -h 127.0.0.1 plughub > /srv/backups/plughub-$(date +%F).sql
# Media
rsync -a /srv/plughub/media/ /srv/backups/media-$(date +%F)/
12) Troubleshooting Quickies
- Static 404s: run collectstatic and ensure Nginx alias paths and permissions.
- Permission denied: align ownership (e.g., sudo chown -R plughub:plughub /srv/plughub).
- Bad Request (400): add your domain/IP to ALLOWED_HOSTS.
- White/500 page: check journalctl -u plughub -f and /var/log/nginx/error.log.
For End-Users (How to Operate the System)
1) Sign In & Roles
- Admin: full access to settings, users, and all records.
- Staff: limited to daily operations (products, sales, expenses).
- Login with the account provided by your admin.
2) Dashboard
- At a glance: Total Sales, Total Expenses, Net, and Low Stock alerts.
- Use the date filter to view metrics for Today / This Week / This Month.
3) Products
- Add Product: SKU, name, category, cost, price, initial stock.
- Edit to update pricing or details.
- Low Stock badge appears when quantity dips below your threshold.
- Bulk Import/Export (if enabled): upload CSV to add or update items.
4) Inventory (Stock)
- Stock In: record incoming items (purchase or restock).
- Stock Out: manual adjustments (damaged, lost, etc.) with reason.
- Movement History: audit log of all stock changes.
5) Sales
- New Sale: select products, quantities, and apply discounts (if available).
- Payment: record payment method (cash, transfer, etc.).
- Receipt/Invoice: download or print (if template provided in app).
- Sales List: filter by date, customer (if enabled), or status.
6) Expenses
- Add Expense: category (shipping, rent, utilities, marketing, etc.), amount, date, and notes.
- Reports: filter expenses by date range and category.
7) Reports
- Sales Summary: totals by day/week/month.
- Expense Summary: totals by category/date range.
- Profit Snapshot: Sales – Expenses (simple net).
- Export as CSV/PDF if available.
8) Customers & Suppliers (if enabled)
- Manage contact info and basic ledgers for frequent partners.
- Attach notes or documents (e.g., invoices, receipts) if the module supports uploads.
9) Settings (Admin)
- Business Profile: logo, name, address, currency, timezone.
- Users & Roles: create staff accounts, reset passwords, assign permissions.
- Inventory Rules: low-stock threshold, categories, tax/VAT toggle (if available).
- Branding: update the system name/logo for your business.
10) Media & Files
- Upload product images (optimize for web).
- Keep file names clean (no spaces/special chars) for easy search.
11) Backup & Restore (Operator Basics)
- Export Data regularly (CSV/JSON) via the admin/report pages (if provided).
- Ask your server admin to back up database + media weekly.
12) Daily Workflow (Suggested)
- Morning: check Dashboard & Low Stock; plan restocks.
- ###strong/strong### record Sales and any Expenses.
- End of day: review Reports; export if needed.
- Weekly: reconcile stock, back up data, archive reports.
| Category | Scripts & Code / Django |
| First release | 26 October 2025 |
| Last update | 26 October 2025 |
| Files included | .py, .css, .html, .dll, .xml, Javascript .js |
| Tags | python, web app, Responsive design, admin dashboard, product catalog, django, inventory management system, management software, business tool, self hosted, sales report, stock tracker, inventory tracker, warehouse system, fullstack project |








