Skip to content

A7MED970/POP

Repository files navigation

Pharmacy Management System (POP)

Overview

The Pharmacy Management System (POP) is a software application designed to manage the operations of a pharmacy. It provides functionalities such as managing drug inventory, placing orders, calculating sales, and supporting both terminal and graphical user interface (GUI) modes. The system is built in Java and supports features like guest mode, logging, and prescription validation.


Features

  1. Drug Management

    • Add, edit, and remove drugs.
    • Set maximum capacity for the pharmacy.
    • Display all drugs with filtering and sorting options.
  2. Order Management

    • Place orders for drugs.
    • Validate prescription files for prescription drugs.
    • Log all orders with details such as drug ID, name, quantity, total cost, and date.
  3. Sales Reporting

    • Calculate total sales for a specific day.
    • Filter sales by drug category.
  4. User Modes

    • Admin Mode: Full access to all features.
    • Guest Mode: Limited access to viewing drugs and placing orders.
  5. Graphical User Interface (GUI)

    • Intuitive and user-friendly interface for managing the pharmacy.
    • Login and guest access options.
    • Styled components for better user experience.
  6. Logging

    • Logs all actions performed in the system.
    • View logs through the GUI.

How to Run

  1. Terminal Mode

    • Run the Main.java file.
    • Choose "1" for terminal mode.
    • Follow the prompts to interact with the system.
  2. GUI Mode

    • Run the Main.java file.
    • Choose "2" for GUI mode.
    • Use the graphical interface to manage the pharmacy.

File Structure

Project/
├── Main/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/
│   │   │   │   ├── com/
│   │   │   │   │   ├── mycompany/
│   │   │   │   │   │   ├── main/
│   │   │   │   │   │   │   ├── Main.java
│   │   │   │   │   │   │   ├── GUI.java
│   │   │   │   │   │   │   ├── managementSystem.java
│   │   │   │   │   │   │   ├── placeAnOrder.java
│   │   │   │   │   │   │   ├── FileHandling.java
│   │   │   │   │   │   │   ├── Drug.java
├── README.md
├── Drug.txt
├── Orders.txt
├── log.txt
├── MaxDrugsLimit.txt

Classes and Responsibilities

1. Main

  • Entry point of the application.
  • Allows the user to choose between terminal and GUI modes.

2. GUI

  • Provides a graphical user interface for the system.
  • Includes login, guest mode, and main menu functionalities.

3. managementSystem

  • Core class for managing the pharmacy.
  • Handles drug inventory, orders, and sales reporting.

4. placeAnOrder

  • Manages the process of placing orders.
  • Validates stock availability and prescription files.

5. FileHandling

  • Handles all file operations, including saving and loading drugs, orders, and logs.
  • Supports prescription file validation.

6. Drug

  • Represents a drug in the system.
  • Stores details such as name, ID, price, category, and available quantity.

Usage Instructions

Admin Mode

  1. Login: Use the credentials admin/admin.
  2. Main Menu:
    • Add, edit, or remove drugs.
    • Place orders and validate prescriptions.
    • View total sales for a specific day.
    • Manage logs and system settings.

Guest Mode

  1. Access: Click "Guest" on the login screen.
  2. Features:
    • View all drugs.
    • Place orders (with prescription validation for prescription drugs).

File Descriptions

  • Drug.txt: Stores the list of drugs in the pharmacy.
  • Orders.txt: Logs all orders placed in the system.
  • log.txt: Records all actions performed in the system.
  • MaxDrugsLimit.txt: Stores the maximum capacity of the pharmacy.

Future Enhancements

  1. Add support for multiple users with different roles.
  2. Implement advanced reporting features.
  3. Enhance the GUI with more interactive components.
  4. Add support for exporting data to external formats (e.g., CSV, PDF).

Contributors

  • Ahmed Shaban Mohamed (231001388)
  • Abdelrahman Mohamed Ramadan (231001161)
  • Mohamed Elkassas (231001025)
  • Omar Magdy (231000967)

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Pharmacy ordering project for advanced programming

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages