You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Fortress is a comprehensive application designed to manage prison operations efficiently. It streamlines tasks such as managing prisoners, staff, visitors, cells, and crime statistics through an easy-to-use interface. Built with modern technologies, the system ensures scalability, reliability, and security.
Module Descriptions
- Prisoner Management Module
Record and update prisoner details.
Maintain personal and legal information.
Add, update, and remove prisoner records.
Track prisoner status and legal cases.
- Visitor Management Module
Register new visitors.
Link visitors to specific prisoners.
Remove visitor records.
Track visitor history for security purposes.
- Cell Management Module
Manage allocation of cells to prisoners.
Add new cells and delete unused cells.
Reallocate prisoners between cells to ensure safety and optimize operations.
- Staff Management Module
Register new staff members and update their details.
Remove staff when required.
Manage user access based on staff roles.
- Crime Management Module
Add and update criminal records of prisoners.
Maintain historical records for legal tracking.
Remove outdated crime details.
- Job Management Module
Assign tasks to prisoners.
Update and track job details.
Remove completed or redundant job assignments.
- Work Management Module
Record work details and hours completed by prisoners.
Track productivity and compliance.
Maintain proper documentation of all work activities.
Tech Stack
Backend
Programming Language: Python
Web Framework: Flask
Database: MySQL
Libraries/Tools: MySQL Connector for database connectivity
Frontend
Framework: React.js
Libraries:
react-table for dynamic table generation
axios for API calls
Additional Tools
Version Control: Git and GitHub
IDE: Visual Studio Code (recommended)
Installation
Prerequisites
Python 3.9 or later.
Node.js and npm.
MySQL server.
Steps
NOTE: If you are using the project for the first time, run tables.py to create the required database and tables.
Clone the repository:
git clone https://github.com/dyingpotato890/Prison-Management-System.git
cd Prison-Management-System
Set up the backend:
Navigate to the backend folder:
cd backend
Install required Python dependencies:
pip install -r requirements.txt
Run the backend:
python main.py
Set up the frontend:
Navigate to the frontend folder:
cd frontend
Install dependencies:
npm install
Start the development server:
npm start
Usage
Launch the Application:
Ensure both the backend and frontend servers are running.
Open the frontend in your browser at http://localhost:3000.
Login as Staff:
Use your Staff ID and password to access the system.
Navigate through Features:
Use the sidebar to explore and manage staff, prisoners, visitors, and other entities.
Perform Administrative Tasks:
Assign cells, manage staff roles, and track crimes effortlessly.
PRIMARY KEY (composite), FOREIGN KEY REFERENCES PRISONER(PRISONER_ID), NOT NULL
JOBID
INT
PRIMARY KEY (composite), FOREIGN KEY REFERENCES JOBS(JOBID), NOT NULL
HOURS_WORKED
DECIMAL(5,2)
NOT NULL, CHECK (HOURS_WORKED >= 0 AND HOURS_WORKED <= 24)
Screenshots
Login Screen:
Prioner Management:
Prioner Details:
Visitor Tracking:
Cell Management:
Staff Management:
Crime Management:
Job Management:
Work Management:
Contributing
Contributions are welcome! Please follow these steps:
Fork the repository.
Create a new branch:
git checkout -b feature-name
Commit your changes:
git commit -m "Description of changes"
Push to the branch:
git push origin feature-name
Submit a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.
About
A comprehensive prison management system built using MySQL, React, and Flask. This system streamlines the administration of staff, prisoners, cells, tasks, and visitors. The project includes various management features such as prisoner registration, cell allocation, staff role updates, task assignments, and visitor tracking.