Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

wayne2604/software-design

Repository files navigation

A robust console-based e-commerce marketplace application built in Java. It allows users to register, buy and sell products, manage custom persistent shopping carts, and features a secure admin dashboard to monitor sales metrics and top consumers.


πŸ“¦ Stack

  • Java SE (JDK 8+)
  • Plain Text Database File Persistence
  • OOP Architecture (Object-Oriented Design)
  • Console User Interface

✨ Quick start

# Clone the repository
git clone https://github.com/manubag/software-design-midterm.git
# Navigate to the directory
cd software-design-midterm
# Compile all Java files into an output folder
javac -d out src/*.java
# Run the compiled application
java -cp out Main

Ensure you run the application from the project root directory so that local text database files (users.txt, Items.txt, and transactions.txt) are created and read correctly.


βš™οΈ Features

  • Dual Marketplace Roles β€” Seamless switching between specialized "Buy Menu" and "Sell Menu" roles for active users.
  • Inventory Management β€” Sellers can add new items, replenish stock levels, adjust unit prices, edit product details (name, category, description), and list low-stock items.
  • Persistent Shopping Carts β€” Dedicated user carts saved under cart_<userID>.txt, dynamically loading and saving items across active user sessions.
  • Targeted Checkouts β€” Multi-option checkout support enabling users to purchase their entire cart, items from a specific seller, or individual selected products.
  • Secure Admin Panel β€” Password-protected administrator console (H3LLo?) to view users/sellers, check period sales, seller performance, and top shoppers ("Shopaholics").
  • Transactional Ledger β€” Auto-saving financial statements stored persistently within local flat-file storage files.

πŸ› οΈ How it works

The system follows a clean object-oriented architecture designed in pure Java:

  • Modular Structure: Key domain entities (Users, Items, Cart, Transactions) defined as individual classes linked by logical associations and inheritance.
  • Custom Serialization: Custom parsing mechanisms designed to serialize and deserialize object properties into plain-text databases using delimiters (| and ;).
  • File System Database: Employs pure Java I/O (Scanner, FileWriter, PrintWriter) to orchestrate a fast, lightweight, and fully persistent offline database system.

πŸ“ Project structure

/
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ Cart.java # Shopping cart entity, item aggregation, and cart file I/O
β”‚ β”œβ”€β”€ Items.java # Product details, seller product listings, and stock management
β”‚ β”œβ”€β”€ Main.java # Central application menu orchestration and user control flow
β”‚ β”œβ”€β”€ Transactions.java # Financial ledger, transactional records, and sales reports
β”‚ └── Users.java # User profile entity, auth procedures, and serialization logic
β”œβ”€β”€ Items.txt # Flat-file database containing all listed products
β”œβ”€β”€ transactions.txt # Local database storing all transactional checkout records
β”œβ”€β”€ users.txt # Local database storing registered user profiles
└── README.md # Project documentation

πŸ‘€ Authors

About

A Java-based CLI application for inventory and transaction management. Features multi-user registration, administrative controls, shopping cart functionality, and persistent data storage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /