A lightweight Django app for user management with Admin/User roles, a modern UI (Bootstrap + Tailwind + custom CSS), and a local JSON file as the data store.

80% Vibe Coding for Frontend 20% myself for Backend/Database THIS PROJECT STILL IN DEVELOPMENT
- Authentication + sessions
- Admin panel: CRUD users, status/roles, user directory
- Payroll management: input payroll, history, and PDF slip generation
- User dashboard: profile + activity panels
- Local JSON storage (no database setup required)
Windows (PowerShell):
python -m venv .venv
.venv\Scripts\activatemacOS/Linux:
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtCreate a .env file in the project root:
DEBUG=True
SECRET_KEY=django-insecure-dev-key-for-local-testing-onlypython manage.py runserverOpen: http://127.0.0.1:8000
- Admin:
admin/admin123 - User:
user1/user123
Tip: you can auto-fill the login form:
http://127.0.0.1:8000/login?demo=adminhttp://127.0.0.1:8000/login?demo=user
/– Landing page/login– Login/dashboard– User dashboard/admin– Admin panel
Authentication:
POST /loginGET /logout
Admin-only user management:
GET /api/usersPOST /api/users/createPUT /api/users/<id>/updateDELETE /api/users/<id>/delete
.
├── config/ # Django project settings/urls/wsgi
├── manage/ # Main app
│ ├── data/ # Local JSON data
│ │ └── users.json
│ ├── static/
│ │ ├── css/ # Custom styling
│ │ │ ├── admin.css
│ │ │ ├── dashboard.css
│ │ │ ├── index.css
│ │ │ ├── login.css
│ │ │ └── style.css
│ │ ├── img/
│ │ └── js/
│ │ ├── admin.js
│ │ └── login.js
│ ├── templates/
│ │ ├── admin.html
│ │ ├── dashboard.html
│ │ ├── index.html
│ │ ├── login.html
│ │ └── verify_email.html
│ ├── db.py
│ ├── urls.py
│ └── views.py
├── .env # Local env vars (do not commit secrets)
├── manage.py
└── requirements.txt
This project is intended for learning/demo use.
- Passwords are stored in plain text (demo).
- Local JSON storage is not suitable for concurrent writes.
If you deploy this publicly, switch to Django’s auth + a real database, add password hashing, and set DEBUG=False.
Important limitation (because this project uses a local JSON file as a database):
- On Vercel/serverless, writes are not permanent. The app will work, but any changes you make (new users, payroll edits) can reset on a new deployment or cold start.
- For permanent storage, move data to a real database (Postgres) or an external KV/storage service as you like.
- Port already in use:
python manage.py runserver 8001- Static assets missing (production-style collect):
python manage.py collectstaticLast updated: January 31, 2026