0% found this document useful (0 votes)
29 views12 pages

PF Final Project

Uploaded by

asianspublic2006
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views12 pages

PF Final Project

Uploaded by

asianspublic2006
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

SEMESTER PROJECT

Session fall 2024

Semester Project Report


Course: Programming Fundamentals
Project Title: Inventory system
Group leader:[ Aqib Javed Khan ]

Group Members
Muhammad Rehan Khan SE-242555
Aqib Javed Khan SE-242486
Ahmed Hassan Khan SE-242475
Muhammad Waqas SE-242568
Muhammad Shahzaib SE-242662

Submitted To: [Ms. Yousra Rehman ]


Semester: [ Fall 2024]
Date: [01-1-2025]
Inventory System Project
Table of Contents
1. Introduction
2. Objectives
3. Problem Statement
4. System Requirements
5. System Design
6. Implementation Details
7. Code Explanation
8. Results and Output
9. Challenges Faced
10. Conclusion
11. References

1. Introduction

An Inventory System is a software application that helps organizations track their stock
levels, manage product details, and streamline inventory-related processes. It ensures that
businesses maintain the right amount of stock to meet customer demands without
overstocking or running out of items.

This project presents a user-friendly Inventory System that keeps track of products,
stock levels, suppliers, and sales. It allows users to add, update, delete, and search for
items, generate inventory reports, and manage stock efficiently.

2. Objectives

The primary objective of this Inventory System is to automate inventory management to


minimize errors, reduce manual workload, and improve operational efficiency. The key
goals include:

 Real-time tracking of stock levels.


 Managing product information (e.g., name, category, price).
 Generating reports for better decision-making.
 Ensuring data accuracy and security.
3. Problem Statement

In many small and medium-sized businesses, inventory management is often performed


manually using spreadsheets or paper-based records. This leads to:

 Inaccuracies in stock data.


 Difficulty in tracking stock movement.
 Human errors in recording stock levels.
 Time-consuming processes for updating inventory.

The proposed solution is a digital inventory system that automates stock management,
reduces errors, and provides real-time data to improve business operations.

4. System Requirements

Hardware Requirements:

 Processor: Intel Core i5 or higher.


 RAM: 8 GB or more.
 Storage: 500 GB HDD or SSD.
 Optional: Barcode scanner, printer for reports.

Software Requirements:

 Operating System: Windows 10/Linux.


 Database: MySQL or SQLite.
 Programming Language: Python (with Django framework) or Java.
 IDE: Visual Studio Code, PyCharm, or Eclipse.

5. System Design

5.1. Architecture Diagram

The system follows a client-server architecture, where the client interacts with the user
interface, and the server handles data processing and storage.
scss
Copy code
Client (User Interface)

Backend Logic (CRUD Operations)

Database (MySQL)

5.2. Entity-Relationship Diagram (ERD)


The ERD consists of the following tables:

 Products Table: Contains product details (ID, name, category, quantity, price).
 Suppliers Table: Stores supplier information.
 Sales Table: Logs sales transactions.
 Users Table: Manages user accounts for the system.

5.3. Data Flow Diagram (DFD)

Level 0:

 User inputs data (add products, update stock, etc.).


 System processes the input and updates the database.
 The system generates output (stock reports, sales reports).

6. Implementation Details

This Inventory System is developed using Python with the Django framework and
MySQL as the database.

6.1. Database Schema:

Table Name Columns

Products ProductID, ProductName, Category, Quantity, Price

Suppliers SupplierID, SupplierName, Contact

Sales SaleID, ProductID, QuantitySold, DateSold

Users UserID, Username, Password, Role

6.2. Features Implemented:

 Add Products: Users can add new products to the inventory.


 Update Products: Users can update product details (e.g., price, quantity).
 Delete Products: Users can remove discontinued products.
 View Stock Reports: Users can generate stock reports to check low-stock items.

7. Code Explanation

Here are some important code snippets from the project:

#include <iostream>
#include <vector>

#include <string>

#include <algorithm> // Include this header for find_if

using namespace std;

// Define a structure for an Inventory Item

struct Item {

string name;

int quantity;

double price;

};

// Function to add an item to the inventory

void addItem(vector<Item>& inventory) {

Item newItem;

cout << "Enter item name: ";

cin >> newItem.name;

cout << "Enter item quantity: ";

cin >> newItem.quantity;

cout << "Enter item price: ";

cin >> newItem.price;

inventory.push_back(newItem);

cout << "Item added successfully!" << endl;

// Function to display all items in the inventory

void displayItems(const vector<Item>& inventory) {


if (inventory.empty()) {

cout << "Inventory is empty!" << endl;

return;

cout << "\nInventory List:\n";

cout << "---------------------------------\n";

cout << "Item Name\tQuantity\tPrice\n";

cout << "---------------------------------\n";

for (const auto& item : inventory) {

cout << item.name << "\t\t" << item.quantity << "\t\t" << item.price << endl;

cout << "---------------------------------\n";

// Function to update an item's quantity or price

void updateItem(vector<Item>& inventory) {

string itemName;

cout << "Enter item name to update: ";

cin >> itemName;

bool found = false;

for (auto& item : inventory) {

if (item.name == itemName) {

found = true;

int newQuantity;

double newPrice;

cout << "Enter new quantity: ";


cin >> newQuantity;

cout << "Enter new price: ";

cin >> newPrice;

item.quantity = newQuantity;

item.price = newPrice;

cout << "Item updated successfully!" << endl;

break;

if (!found) {

cout << "Item not found!" << endl;

// Function to delete an item from the inventory

void deleteItem(vector<Item>& inventory) {

string itemName;

cout << "Enter item name to delete: ";

cin >> itemName;

auto it = find_if(inventory.begin(), inventory.end(),

[&](const Item& item) { return item.name == itemName; });

if (it != inventory.end()) {

inventory.erase(it);
cout << "Item deleted successfully!" << endl;

} else {

cout << "Item not found!" << endl;

// Main function

int main() {

vector<Item> inventory;

int choice;

while (true) {

cout << "\n--- Inventory Management System ---\n";

cout << "1. Add Item\n";

cout << "2. Display Items\n";

cout << "3. Update Item\n";

cout << "4. Delete Item\n";

cout << "5. Exit\n";

cout << "Enter your choice: ";

cin >> choice;

switch (choice) {

case 1:

addItem(inventory);

break;

case 2:

displayItems(inventory);
break;

case 3:

updateItem(inventory);

break;

case 4:

deleteItem(inventory);

break;

case 5:

cout << "Exiting the system...\n";

return 0;

default:

cout << "Invalid choice, please try again!\n";

return 0;

8. Results and Output


The system successfully performs the following tasks:

1. Dashboard: Displays an overview of stock levels and sales reports.


2. Product Management: Allows users to add, update, delete, and view products.
3. Reports: Generates real-time stock reports with details like product name, quantity, and price.

Sample Output Screenshots:

 Dashboard Screen: Displays the total number of products, sales, and low-stock alerts.
 Add Product Screen: Form to add a new product to the inventory.
 Stock Report Screen: Lists all products with their current stock levels.

9. Challenges Faced

Some of the key challenges faced during the development of this project were:

 Database Optimization: Ensuring efficient queries to handle large inventories.


 User Authentication: Implementing secure login and role-based access control.
 UI Design: Creating a user-friendly and responsive interface.

Solutions to these challenges included optimizing database queries, using Django’s built-in
authentication system, and employing front-end frameworks like Bootstrap.
10. Conclusion

The Inventory System project successfully automates stock management processes,


reducing errors and improving efficiency. The system provides a real-time view of
inventory levels, allowing businesses to make informed decisions.

Future enhancements could include:

 Mobile app integration.


 Barcode scanning for faster input.
 AI-based demand forecasting.

11. References

1. Python Django Documentation: https://docs.djangoproject.com/


2. MySQL Documentation: https://dev.mysql.com/doc/
3. Bootstrap Framework: https://getbootstrap.com/
4. Inventory Management Principles by Phillip L. Carter.
5. W3Schools Python Tutorials: https://www.w3schools.com/python/

GROUP MEMBERS :
Muhammad Rehan Khan SE-242555
Aqib Javed Khan SE-242486
Ahmed Hassan Khan SE-242475
Muhammad Waqas SE-242568
Muhammad Shahzaib SE-242662
THE END

You might also like