Pharmacy Management System Using Python Django
Introduction
The Pharmacy Dispensing Management System is a robust and user-friendly software solution developed using Python and the Django framework. It is designed to streamline the workflows in a pharmacy setting by facilitating the management of patients, prescriptions, medications, and administrative tasks. The system serves multiple user roles, including Administrator, Pharmacist, Doctor, Receptionist (Pharmacy Clerk), and Patient, each with distinct functionalities tailored to their responsibilities.
This project aims to address inefficiencies in manual pharmacy operations, such as tracking stock levels, dispensing errors, and managing patient data. With its intuitive interface and comprehensive features, it simplifies day-to-day operations, ensuring that medications are dispensed accurately and efficiently.
Key Features:
Administrator: Manage admissions, users, prescriptions, drug categories, stocks, and personal accounts.
Pharmacist: Handle drug inventory, stocks, dispensing drugs, and patient feedback.
Doctor: Create and manage patient prescriptions.
Receptionist: Manage patient admissions and their personal account details.
Patient: View prescribed medications, provide feedback on pharmacy services, and manage personal accounts.
The system ensures seamless communication among different users and integrates all pharmacy-related operations into a single platform. Its user-friendly design allows both technical and non-technical users to navigate and perform their tasks effectively.
How to Run the Code
To get the Pharmacy Dispensing Management System running on your local machine, follow these steps:
Prerequisites:
Ensure you have Python and pip installed on your system. Install Django and other dependencies from the requirements.txt
file.
Steps:
Clone or download the project: Extract the project files into a directory on your system.
Navigate to the project directory:
cd pharmacy-management-system-master
Install required dependencies: Use the following command to install all required Python libraries:
pip install -r requirements.txt
Apply migrations to set up the database: Initialize the SQLite database by running:
python manage.py migrate
Run the development server: Start the Django server with the command:
python manage.py runserver
Access the application: Open your web browser and navigate to
http://127.0.0.1:8000/
to interact with the system.
Default Login Credentials:
Administrator:
Username:
admin
Password:
1234
Pharmacist:
Username:
pharmacist1
Password:
1234
Doctor:
Username:
doctor1
Password:
1234
Receptionist:
Username:
pharmacyclerk1
Password:
1234
Patient:
Username:
patient1
Password:
1234
Code Explanation
The project is built on the Django framework, which follows the Model-View-Controller (MVC) architecture. Let’s explore some key components of the code:
1. User Roles and Authentication:
Each user role is managed with Django’s built-in authentication system. The roles include specific permissions and access levels.
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
role = models.CharField(max_length=20, choices=[
('Administrator', 'Administrator'),
('Pharmacist', 'Pharmacist'),
('Doctor', 'Doctor'),
('Receptionist', 'Receptionist'),
('Patient', 'Patient'),
])
This CustomUser
model extends Django’s default user model to include a role
field, which defines the type of user.
2. Managing Medications:
Administrators and pharmacists can add and manage drug inventories. Below is a snippet for managing drugs:
class Drug(models.Model):
name = models.CharField(max_length=100)
category = models.ForeignKey(DrugCategory, on_delete=models.CASCADE)
quantity = models.IntegerField()
price = models.FloatField()
def __str__(self):
return self.name
This model defines the drug details, including its name, category, quantity, and price.
3. Prescription Management:
Doctors can create prescriptions for patients. Pharmacists can view and dispense medications based on these prescriptions.
class Prescription(models.Model):
patient = models.ForeignKey(CustomUser, on_delete=models.CASCADE, limit_choices_to={'role': 'Patient'})
doctor = models.ForeignKey(CustomUser, on_delete=models.CASCADE, limit_choices_to={'role': 'Doctor'})
date = models.DateField(auto_now_add=True)
def __str__(self):
return f"Prescription for {self.patient.username} by Dr. {self.doctor.username}"
The prescription model links patients to their doctors and includes a timestamp for tracking.
4. Dispensing Medications:
Pharmacists dispense medications and update stock levels accordingly.
class Dispense(models.Model):
prescription = models.ForeignKey(Prescription, on_delete=models.CASCADE)
drug = models.ForeignKey(Drug, on_delete=models.CASCADE)
quantity = models.IntegerField()
def save(self, *args, **kwargs):
# Update stock quantity
self.drug.quantity -= self.quantity
self.drug.save()
super().save(*args, **kwargs)
The Dispense
model ensures that stock levels are automatically updated whenever a medication is dispensed.
Source Code:
Output:
More Projects:
Bank Management System Using Python Django
Bank Management System Using Python Django Introduction The Bank Management System V2.0.2 is a feature-rich online banking solution built using the Python Django web framework.
Pharmacy Management System Using Python Django
Pharmacy Management System Using Python Django Introduction The Pharmacy Dispensing Management System is a robust and user-friendly software solution developed using Python and the Django
Number Guessing Game Using HTML CSS And JavaScript
Build a Quiz Game Using HTML CSS and JavaScript Introduction Hello coders, you might have played various games, but were you aware that you can
Emoji Catcher Game Using HTML CSS and JavaScript
Emoji Catcher Game Using HTML CSS and JavaScript Introduction Hello Coders, Welcome to another new blog. In this article we’ve made a emoji catcher game.
Typing Challenge Using HTML CSS and JavaScript with complete source code
Typing Challenge Using HTML CSS and JavaScript Introduction Hello friends, all you developer friends are welcome to our new project. If you are also new
Breakout Game Using HTML CSS and JavaScript With Source Code
Breakout Game Using HTML CSS and JavaScript With Source Code Introduction Hello friends, welcome to today’s new blog post. All of you are welcome. Today