Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Art Gallery Management System

Overview

This is a console-based Art Gallery Management System written in C++. It allows users to manage and interact with an art gallery, including user registration, login, artwork management, artist applications, auction management, bidding, and bookings. The system supports three main user roles: Visitor, Artist, and Admin, each with their own set of features and menus.


Features

User Management

  • Signup & Login: New users can register as Visitors. Existing users can log in with their credentials.
  • Role-based Access: Users are assigned roles (Visitor, Artist, Admin) that determine their available actions.
  • User Data Storage: User information is stored in data/usersInfo.txt with unique IDs and timestamps.

Visitor Features

  • Browse Artworks: View available artworks in the gallery.
  • Book Visits: Book a visit to the gallery.
  • Apply as Artist: Submit an application to become an artist.
  • Browse & Join Auctions: View ongoing auctions and place bids (bidding is disabled after auction end time).
  • View Won Auctions: See auctions won and instructions for artwork retrieval.

Artist Features

  • Submit Artwork: Add new artworks to the gallery.
  • Apply for Auction: Request to auction an artwork.
  • View Application Status: Track the status of auction and artist applications.
  • Auction Management: Start auctions for approved applications.

Admin Features

  • User Management: View and manage all users.
  • Artist Application Review: Approve or reject artist applications.
  • Auction Application Review: Approve or reject auction requests.
  • Auction Management: Open, monitor, and close auctions. Update winners automatically after auction end.

Auction & Bidding System

  • Auction Creation: Artists and admins can create and manage auctions for artworks.
  • Bidding: Visitors can place bids on live auctions. Bidding is prevented after auction end time.
  • Winner Determination: System automatically updates and displays auction winners after auction end.
  • Bid Data Storage: All bids are stored in data/bidsData.txt.

Booking System

  • Book Gallery Visits: Visitors can book visits, and bookings are stored in data/BookingsInfo.txt.

Code Structure

  • main.cpp:

    • Entry point. Handles main menu, user signup, login, and session management.
    • Uses colorized, centered, and bordered console output for a professional UI.
    • Delegates role-specific menus to Visitor, Artist, or Admin classes.
  • model/User.h:

    • Base class for all users. Stores user info and provides a virtual interface for menus.
  • model/Visitor.h:

    • Inherits from User. Implements visitor-specific features: browsing, booking, bidding, and artist application.
  • model/Artist.h:

    • Inherits from User. Implements artist-specific features: artwork submission, auction application, and auction management.
  • model/Admin.h:

    • Inherits from User. Implements admin-specific features: user management, application review, and auction control.
  • model/Artwork.h:

    • Represents an artwork in the gallery. Handles display and info formatting.
  • model/ArtistApplicationRequest.h:

    • Handles artist application logic, file storage, and status tracking.
  • model/AuctionApplicationRequest.h:

    • Handles auction application logic, file storage, and status tracking.
  • model/AuctionSystem.h:

    • Manages auction lifecycle, status, and winner updates.
  • model/Bid.h:

    • Represents a bid in an auction. Handles bid data and formatting.
  • model/BookingSystem.h:

    • Manages gallery visit bookings.
  • model/Gallery.h:

    • Represents the gallery and its artworks.
  • model/utils.h:

    • Utility functions (e.g., clearScreen(), formatting helpers).

Data Files

  • data/usersInfo.txt — User records
  • data/artistApplications.txt — Artist applications
  • data/auctionApplications.txt — Auction applications
  • data/auctionsInfo.txt — Auction details
  • data/bidsData.txt — Bids for auctions
  • data/auctionWinners.txt — Auction winners
  • data/BookingsInfo.txt — Gallery bookings
  • data/artworksInfo.txt — Artwork records

UI & Formatting

  • All menus, submenus, and info blocks use consistent color, centering, and 100-character borders.
  • Info displays use a left-label/right-value block style for clarity.
  • Confirmation and error messages are visually consistent and professional.
  • All runtime and formatting issues have been addressed for a robust user experience.

How to Run

  1. Build the project using a C++ compiler (e.g., g++, MinGW).
  2. Run the generated executable (main.exe).
  3. Follow the on-screen instructions to interact with the system.

Notes

  • All code comments have been removed for production deployment.
  • The system is robust against malformed data and prevents post-end-time bidding.
  • Winners are updated automatically after auction end.

Author

  • by Abdul Hannan Qureshi
  • Developed as an Object-Oriented Programming project.

About

🎨 Console-based Art Gallery Management System in C++ (OOP). Features role-based access (Admin/Artist/Visitor), a live auction & bidding engine, and a stylized terminal UI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages