Amrita School of Computing, Chennai
AMRITA VISHWA VIDYAPEETHAM
19CSE201 ADVANCED PROGRAMMING
CAPTSONE PROJECT PROBLEM STATEMENTS
PREPARED BY
Mr. S. Saravanan
Assistant Professor, Dept. Of CSE
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
1. Secure Password Management System
Project Goal:
Develop a secure and user-friendly password management system using object-oriented
programming concepts in C++ or Python. The system should leverage a database (MySQL or
Oracle) to store user information and credentials securely.
Features:
User Management:
Create user accounts with secure password hashing (e.g., bcrypt with a random salt).
Implement optional user details like name and email (validated for proper format).
Credential Management:
Allow users to add, edit, and delete website/service credentials.
Store website/service names, usernames, and passwords securely using encryption
(e.g., AES-256 with a random key).
Provide an option for users to choose a security level with varying encryption
strengths (optional).
Enable adding notes to credentials (optional).
Consider implementing category management for organizing credentials (optional).
Security:
Implement a strong master password protected by hashing for accessing the
password manager itself.
Utilize secure encryption algorithms (AES-256 or stronger) for storing passwords.
Consider using random salts for both password hashing and encryption for an extra
layer of security.
Explore integrating multi-factor authentication (MFA) for enhanced login security
(optional).
Ensure proper database access control and user permissions to prevent unauthorized
access.
Usability:
Design a user-friendly interface (optional, depending on implementation choice) for
managing users and credentials.
Consider offering features like password generation with customizable options
(character sets, length).
Integrate automatic login information filling for supported websites/services
(optional, security considerations apply).
Database Design:
Implement a minimum of two tables:
Users table: Stores user information (ID, username, email, hashed password, optional
user details).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
Credentials table: Stores website/service information (ID, user ID, website name,
username, encrypted password, optional notes, optional category ID).
Explore adding optional tables for enhanced features (categories, security levels, master
password).
Object-Oriented Programming (OOP):
Utilize OOP principles in C++ or Python to create well-defined classes representing users,
credentials, security levels (optional), password generators (optional), and other
functionalities.
Leverage inheritance for code reuse and extensibility.
Deliverables:
A fully functional secure password management system with the core features listed above.
Well-documented source code demonstrating object-oriented programming concepts.
A database schema outlining the tables and their relationships.
A user guide (optional, depending on implementation) explaining how to use the system.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
2. Intrusion Detection System (IDS) – Signature-based
detection
Project Goal:
Develop a network Intrusion Detection System (IDS) using object-oriented programming concepts
in C++ or Python. The IDS should monitor network traffic for suspicious activity and potentially
malicious behavior, leveraging a database (MySQL or Oracle) to log events and maintain historical
data.
Features:
Network Traffic Monitoring:
Capture and analyze network traffic packets using appropriate libraries (e.g., Scapy
in Python, WinPcap in C++).
Parse packet headers (source IP, destination IP, protocol, etc.) to identify network
communication details.
Consider capturing payload data for deeper analysis (optional, security
considerations apply).
Signature-Based Detection:
Implement a signature database containing known attack patterns and malicious
network traffic characteristics.
Match captured network traffic against the signature database to identify potential
intrusions.
Update the signature database regularly to stay informed about evolving attack
methods (optional, automated updates).
Alerting and Logging:
Generate alerts when suspicious activity is detected, notifying system administrators
or security personnel.
Store detailed information about detected events in a database for analysis and
forensic investigation.
Database Design:
Implement a minimum of two tables:
Network Events table: Stores network traffic details (timestamp, source IP,
destination IP, protocol, packet size, flags, etc.).
Alerts table: Records detected suspicious activity (timestamp, severity level,
description, potential attack type, source IP, destination IP, etc.).
Consider additional tables for advanced features (e.g., signatures, anomaly detection
models).
Object-Oriented Programming (OOP):
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
Utilize OOP principles in C++ or Python to create well-defined classes representing network
connections, packet analysis, signature detection modules, anomaly detection (optional),
alert generation, and logging functionalities.
Deliverables:
A functional network Intrusion Detection System with core detection capabilities.
Well-documented source code demonstrating object-oriented programming concepts.
A database schema outlining the tables and their relationships.
A user interface (optional) for monitoring network activity and viewing alerts.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
3. Secure File Upload and Storage System
Project Goal:
Develop a secure system for uploading and storing small text and image files in a database using
object-oriented programming concepts in C++ or Python. The system should leverage encryption to
protect file confidentiality and implement features for user management and access control.
Features:
User Management:
Allow user registration and profile management.
Implement secure password hashing with random salts for user authentication.
File Upload:
Enable users to upload small text (.txt) and image (.jpg, .png) files to the database.
Design a user-friendly interface for file selection and upload progress tracking.
Encryption:
Implement client-side encryption using a strong encryption algorithm (e.g., AES-
256).
Allow users to choose a password or passphrase for file encryption.
Store the encrypted file content within the database table.
Security:
Secure Password Storage: Store user passwords using a one-way hashing function (e.g.,
bcrypt) with a random salt. Never store passwords in plain text.
Access Control:
Implement basic access control mechanisms.
Allow users to define who can view their uploaded files (optional).
Consider role-based access control (RBAC) for more granular control (optional).
Database Design:
Implement a minimum of two tables:
Users table: Stores user information (ID, username, email, hashed password, optional
user details).
Files table: Stores information about uploaded files (ID, filename, upload date,
owner ID, encrypted file content, access control information).
Object-Oriented Programming (OOP):
Utilize OOP principles in C++ or Python to create well-defined classes representing users,
files, encryption modules, access control mechanisms, and functionalities for file upload,
storage, and retrieval.
Deliverables:
A fully functional Secure File Upload and Storage System with the core features listed
above.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
Well-documented source code demonstrating object-oriented programming concepts.
A database schema outlining the tables and their relationships.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
4. User Authentication and Authorization System (UAS)
Project Goal:
Develop a robust User Authentication and Authorization System (UAS) using object-oriented
programming concepts in C++ or Python. The system should integrate with a database (MySQL or
Oracle) to manage user accounts, roles, and permissions securely.
Features:
User Management:
Create user accounts with secure password hashing (e.g., bcrypt with a random salt).
Implement optional user details like name, email, and unique user identifiers (e.g.,
employee ID, student ID).
Allow for user profile management (optional).
Authentication:
Offer various authentication methods (e.g., username/password, token-based
authentication).
Validate user credentials securely and implement session management.
Consider integrating multi-factor authentication (MFA) for enhanced login security
(optional).
Address potential security threats like brute-force attacks and lockout mechanisms.
Authorization:
Define roles with specific permissions for accessing system functionalities and
resources.
Implement role-based access control (RBAC) to restrict access based on user roles.
Explore attribute-based access control (ABAC) for granular permission control based
on user attributes (optional).
Scalability and Integration:
Design the system to handle a growing number of users and roles.
Consider API integration for authentication and authorization services within other
applications (optional).
Database Design:
Implement a minimum of three tables:
Users table: Stores user information (ID, username, email, hashed password, optional
user details).
Roles table: Defines roles with unique names and descriptions.
Permissions table: Lists system functionalities and resources with associated
permission levels.
Implement many-to-many relationships between Users, Roles, and Permissions tables to
assign roles and permissions to users.
Explore additional tables for advanced features (e.g., user groups, permission hierarchies).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
Object-Oriented Programming (OOP):
Utilize OOP principles in C++ or Python to create well-defined classes representing users,
roles, permissions, authentication modules, authorization mechanisms, and other
functionalities.
Deliverables:
A fully functional User Authentication and Authorization System with the core features
listed above.
Well-documented source code demonstrating object-oriented programming concepts.
A database schema outlining the tables and their relationships.
A user guide (optional, depending on implementation) explaining system usage and access
control procedures.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
5. Intrusion Detection System (IDS) – Anomaly-based
detection
Project Goal:
Develop a network Intrusion Detection System (IDS) using object-oriented programming concepts
in C++ or Python. The IDS should monitor network traffic for suspicious activity and potentially
malicious behavior, leveraging a database (MySQL or Oracle) to log events and maintain historical
data.
Features:
Network Traffic Monitoring:
Capture and analyze network traffic packets using appropriate libraries (e.g., Scapy
in Python, WinPcap in C++).
Parse packet headers (source IP, destination IP, protocol, etc.) to identify network
communication details.
Consider capturing payload data for deeper analysis (optional, security
considerations apply).
Anomaly-Based Detection (Optional):
Develop algorithms to identify deviations from normal network traffic patterns.
Utilize statistical analysis (e.g., unusual traffic volume, unusual connection
attempts).
Alerting and Logging:
Generate alerts when suspicious activity is detected, notifying system administrators
or security personnel.
Store detailed information about detected events in a database for analysis and
forensic investigation.
Database Design:
Implement a minimum of two tables:
Network Events table: Stores network traffic details (timestamp, source IP,
destination IP, protocol, packet size, flags, etc.).
Alerts table: Records detected suspicious activity (timestamp, severity level,
description, potential attack type, source IP, destination IP, etc.).
Consider additional tables for advanced features (e.g., signatures, anomaly detection
models).
Object-Oriented Programming (OOP):
Utilize OOP principles in C++ or Python to create well-defined classes representing network
connections, packet analysis, signature detection modules, anomaly detection (optional),
alert generation, and logging functionalities.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
Deliverables:
A functional network Intrusion Detection System with core detection capabilities.
Well-documented source code demonstrating object-oriented programming concepts.
A database schema outlining the tables and their relationships.
A user interface (optional) for monitoring network activity and viewing alerts.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
6. Secure Note Taking Desktop Application
Project Goal:
Develop a secure desktop application for creating, storing, organizing, and searching notes using
object-oriented programming concepts in C++ or Python. The application should leverage
encryption to protect note confidentiality and offer functionalities for user management and secure
data storage.
Features:
User Management:
Allow user registration with secure password hashing (e.g., bcrypt with a random
salt).
Implement optional user details like name and email for user identification.
Note Taking:
Enable users to create new notes, edit existing notes, and delete unwanted notes.
Provide rich text editing functionalities (e.g., bold, italics, headings, bullet points) for
formatting notes.
Allow users to categorize notes using tags or labels for easy organization.
Note Encryption:
Implement client-side encryption for note content using a strong encryption
algorithm (e.g., AES-256). Users choose a master password or passphrase for
encryption.
Store only the encrypted note content on the local machine, not on a server.
Optionally, consider allowing users to encrypt individual notes with separate
passwords for additional security.
Data Storage:
Utilize a secure local storage mechanism (e.g., encrypted database stored on the
user's device) to store encrypted notes and user information.
Consider offering functionalities for data backup and export to external storage (e.g.,
encrypted backups to cloud storage, optional).
Search Functionality:
Implement a search function to enable users to search notes by keywords or tags.
Consider extending search options to include note titles, creation date, and content
snippets (optional).
Security:
Securely store user passwords using one-way hashing with a random salt.
Never store passwords in plain text.
Utilize secure encryption algorithms and key management techniques for note
content.
Implement session management to maintain user authentication throughout the
application use (optional).
Validate user input to prevent potential vulnerabilities like SQL injection attacks (if
using a local database).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
Usability:
Design a user-friendly and intuitive interface for creating, editing, organizing, and searching
notes.
Provide functionalities for viewing notes in a clear and visually appealing format.
Allow users to export notes in different formats like plain text or PDF (optional).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
7. Collaborative Task Management App with Gamification
Project Goal:
Develop a collaborative task management application that allows teams to create, organize, track,
and complete tasks efficiently. Integrate gamification elements to motivate team members and
promote a sense of accomplishment.
Target Users:
Students working on group projects.
Professionals collaborating on team-based tasks.
Small businesses or startups managing workflows.
Core Functionalities:
Task Management:
Allow users to create tasks with detailed descriptions, deadlines, and priority levels.
Enable assigning tasks to specific team members and setting due dates.
Provide functionalities for attaching files, adding comments, and tracking task
progress.
Implement drag-and-drop functionality for reordering tasks in a prioritized list
(optional).
Consider offering options for subtasks to break down larger projects into smaller
manageable units (optional).
Team Collaboration:
Facilitate real-time communication through chat functionality within tasks or
projects.
Allow users to mention specific team members in comments and task updates for
better coordination.
Integrate a team calendar to visualize deadlines and track project timelines
(optional).
Gamification Elements:
Points and Leaderboards: Award points to users for completing tasks on time, exceeding
expectations, or helping teammates. Implement leaderboards to showcase top performers
and create a healthy competition within the team.
Badges and Achievements: Design badges for achieving specific milestones like
completing certain types of tasks or reaching deadlines consistently. Users can unlock
badges as they progress, providing a sense of accomplishment.
Progress Tracking: Visually represent individual and team progress towards project goals
using progress bars or completion percentages.
Security Integration:
Implement user authentication (login with username/password) for secure access to the
application.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
Integrate role-based access control (RBAC). Project owners can define permissions for team
members, restricting access to sensitive project information based on their roles (e.g., view-
only vs. edit access).
Usability:
Design a user-friendly and intuitive interface for creating, managing, and collaborating on
tasks.
Additional Considerations:
Explore integrating project management methodologies like Kanban boards to visualize task
workflows (optional).
Consider offering team communication features like video conferencing for virtual
collaboration (optional).
Implement functionalities for exporting task lists and project reports for documentation
purposes (optional).
Deliverables:
A fully functional collaborative task management application with gamification elements.
Well-documented source code demonstrating object-oriented programming concepts.
A user guide explaining how to use the application for creating, managing, collaborating on
tasks, and leveraging gamification features.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
8. Technofest Management Desktop Application
Project Goal:
Develop a desktop application to manage all aspects of participant registration, event information,
and logistical details for a technofest. The application should leverage object-oriented programming
concepts with C++ or Python and utilize a DBMS (MySQL or Oracle) for data storage.
Target Users:
Technofest organizers and volunteers responsible for managing participant registrations,
event details, and logistics.
Core Functionalities:
Participant Management:
Allow registration of participants with details like name, contact information, and
institution (if applicable).
Implement functionalities for managing different participant categories (e.g.,
students, professionals, guests) with specific registration forms.
Enable organizers to view and edit participant information.
Integrate functionalities for searching and filtering participants based on various
criteria (e.g., name, category, registration status).
Event Management:
Allow organizers to create and edit event details including name, description, date,
time, venue, and capacity.
Facilitate registration for individual events within the technofest.
Enable organizers to view and manage registered participants for each event.
Integrate functionalities for creating and managing event schedules with potential
time slots and locations.
Logistic Management:
Allow organizers to define resource requirements for different events (e.g.,
equipment, volunteers).
Implement functionalities for assigning volunteers to specific events and managing
their schedules.
Offer functionalities for tracking resource availability and managing resource
allocation for efficient event execution.
Reporting and Analytics:
Generate reports on participant registration trends, event popularity, and overall
technofest enrollment.
Provide options for exporting reports in various formats (e.g., CSV, PDF) for further
analysis.
Object-Oriented Design:
Utilize object-oriented programming principles to create classes representing key entities:
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
Participant: Name, Contact Information, Institution (optional), Category, Registration
Status, List of Registered Events (optional).
Event: Name, Description, Date, Time, Venue, Capacity, List of Registered Participants.
Resource: Resource type, Description, Availability Status.
Volunteer: Name, Contact Information, Skills, Availability (optional), Assigned Events
(optional).
Database Integration:
Utilize a DBMS (MySQL or Oracle) to store participant information, event details, logistic
data, volunteer information, and registration details.
Non-Functional Requirements:
Security: Implement functionalities for user authentication (login with username/password)
for secure access to manage technofest data.
User Interface: Design a user-friendly and intuitive interface for managing participants,
events, logistics, and generating reports.
Offline Functionality: The application should function offline without requiring an internet
connection.
Deliverables:
A fully functional Technofest Management Desktop Application written in C++ or Python.
Well-documented source code demonstrating object-oriented programming concepts.
A database schema outlining the tables and their relationships for data storage.
A user guide explaining how to use the application for registration, event management,
logistics, and report generation.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
9. University Placement Management Desktop Application
Project Goal:
Develop a desktop application to streamline the placement process for a university's placement
department. The application should leverage object-oriented programming concepts with C++ or
Python and utilize a DBMS (MySQL or Oracle) for data storage.
Target Users:
Placement officers and staff responsible for managing student registrations, company
information, job postings, and placement activities.
Core Functionalities:
Student Management:
Allow registration of final year students with details like name, academic
information (CGPA, skills), and preferred job roles.
Enable functionalities for managing student resumes and interview performance
records.
Integrate functionalities for searching and filtering students based on various criteria
(e.g., CGPA, skills, program of study).
Company Management:
Allow placement officers to create and edit company profiles including name,
contact information, industry, and job types offered.
Facilitate registration of companies for campus recruitment drives.
Enable managing company representatives and contact details.
Job Posting and Management:
Allow companies to post job openings with detailed descriptions, required skills, and
application deadlines.
Implement functionalities for managing applications received from students for each
job opening.
Offer features for shortlisting and scheduling interviews for selected candidates.
Placement Activities:
Facilitate online pre-placement tests (optional) for companies to shortlist candidates.
Enable scheduling of on-campus interviews and managing interview slots for
companies and students.
Integrate functionalities for recording interview feedback and storing interview
results.
Reporting and Analytics:
Generate reports on student placement trends, company recruitment preferences, and
overall placement success metrics.
Provide options for exporting reports in various formats (e.g., CSV, PDF) for further
analysis.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
Object-Oriented Design:
Utilize object-oriented programming principles to create classes representing key entities:
Student: Name, Academic Information (CGPA, Skills), Program of Study, Resume,
Interview Records, List of Applied Jobs.
Company: Name, Contact Information, Industry, Job Types Offered, List of Posted Jobs,
List of Interviewed Students.
Job Posting: Job Title, Description, Required Skills, Application Deadline, List of Applied
Students.
Interview: Date, Time, Company, Student, Interviewer (optional), Feedback.
Database Integration:
Utilize a DBMS (MySQL or Oracle) to store student information, company profiles, job
postings, application data, interview details, and placement outcomes.
Non-Functional Requirements:
Security: Implement functionalities for user authentication (login with username/password)
for secure access to manage placement data.
User Interface: Design a user-friendly and intuitive interface for managing students,
companies, job postings, interview schedules, and generating reports.
Offline Functionality: The application should function offline without requiring an internet
connection.
Deliverables:
A fully functional University Placement Management Desktop Application written in C++ or
Python.
Well-documented source code demonstrating object-oriented programming concepts.
A database schema outlining the tables and their relationships for data storage.
A user guide explaining how to use the application for student registration, company
management, job postings, interview scheduling, and report generation.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
10. Cybersecurity Basics Desktop Application with Object-
Oriented Design and Database Integration
Project Goal:
Develop a desktop application to educate users on fundamental cybersecurity principles and
practices. Leverage object-oriented programming concepts with C++ or Python and utilize a DBMS
(MySQL or Oracle) for data storage.
Target Users:
• Students with no prior cybersecurity knowledge.
• General users interested in improving their online safety.
Core Functionalities:
• Learning Modules:
• Implement interactive modules on various cybersecurity topics with text
explanations, visuals, and interactive quizzes.
• Consider optional gamification elements (points, badges) for user engagement.
• Security Awareness Tips:
• Offer an ongoing stream of security best practices and information on current threats.
• Security Glossary:
• Include clear explanations of common cybersecurity terms for easy reference.
Object-Oriented Design:
• Module: This class represents a single learning module.
• Attributes: Title, Description, Content (text, images), Quiz (optional).
• Methods: DisplayContent(), RunQuiz() (optional).
• Quiz: This class represents a quiz associated with a module (optional).
• Attributes: Questions (list of question objects), CorrectAnswers (list of correct
answers).
• Methods: AskQuestion(), CheckAnswer(), CalculateScore().
• Question: This class represents a single question within a quiz (optional).
• Attributes: Text, Options (list of answer options).
• Tip: This class represents a single security awareness tip.
• Attributes: Title, Description.
• Term: This class represents a single term within the glossary.
• Attributes: Name, Definition.
Database Integration:
• Utilize a DBMS to store learning module content, quiz questions and answers (optional),
security tips, and glossary terms.
Database Tables:
1. Modules:
• Columns: ModuleID (primary key), Title, Description, Content (text data type).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
2. Quizzes (Optional):
• Columns: QuizID (primary key), ModuleID (foreign key references
[Link]), NumberOfQuestions (integer).
3. Questions (Optional):
• Columns: QuestionID (primary key), QuizID (foreign key references
[Link]), Text, Option1, Option2, Option3, Option4, CorrectAnswer (integer
referencing option number).
4. Tips:
• Columns: TipID (primary key), Title, Description.
5. Glossary:
• Columns: TermID (primary key), Name, Definition.
Non-Functional Requirements:
• User Interface: Design a user-friendly and visually appealing interface for easy navigation.
• Accessibility: Ensure accessibility for various learning styles (consider text-to-speech,
adjustable fonts).
• Offline Functionality: The application should function offline for learning modules,
glossary, and security tips (consider optional online updates for new tips).
Security Considerations:
• Implement user authentication (optional) if the application stores user progress or
preferences (e.g., quiz scores).
• Securely store any user data (e.g., quiz scores) with proper encryption (if applicable).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
11. Smart Grocery List and Meal Planning Application
Project Goal:
Develop a desktop application that streamlines grocery shopping and meal planning by integrating
recipe management and automatic grocery list generation. This application will be implemented
using C++ or Python with a DBMS (MySQL or Oracle) for data storage and utilize object-oriented
programming concepts.
Target Users:
• Home cooks who want to save time and money on groceries.
• Individuals interested in healthy meal planning and reducing food waste.
Core Functionalities:
• Recipe Management:
• Allow users to create and store personal recipes with ingredients, quantities, and
instructions.
• Integrate functionalities for importing recipes from external sources (websites,
cookbooks) in a user-friendly format (optional).
• Offer functionalities for searching recipes by name, ingredient, or category (e.g.,
vegetarian, main course).
• Grocery List Management:
• Allow users to create and manage grocery lists with functionalities for adding items,
setting quantities, and marking items as purchased.
• Integrate functionalities for categorizing grocery list items by meal type (e.g.,
breakfast, lunch, dinner, snacks).
• Meal Planning:
• Offer a calendar view for planning meals throughout the week.
• Enable users to assign recipes to specific days on the calendar.
• Automatically generate a grocery list based on the chosen recipes for the week,
taking into account ingredient quantities and avoiding duplication.
• Additional Functionalities (Optional):
• Offer functionalities for nutritional information analysis of recipes based on
ingredient data (consider pre-defined nutritional data for common ingredients).
• Provide functionalities for generating shopping lists based on dietary restrictions or
preferences (e.g., vegetarian, gluten-free).
• Integrate unit conversion tools for recipe ingredients (e.g., cups to grams).
Object-Oriented Design:
• Ingredient: Class representing an ingredient with attributes like name, quantity, and
optional unit of measurement.
• Recipe: Class representing a recipe with attributes like name, description, instructions, and a
list of Ingredient objects.
• GroceryItem: Class representing an item on the grocery list with attributes like name,
quantity, category (optional), and a purchased flag (optional).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
• MealPlan (Optional): Class representing a meal plan for a specific day/week with attributes
like date and a list of Recipe objects.
Database Integration:
• Utilize a DBMS to store user-created recipes (ingredients, instructions), grocery list items,
and meal plan details (optional).
Non-Functional Requirements:
• User Interface: Design a user-friendly and intuitive interface for managing recipes, creating
grocery lists, and planning meals.
• Offline Functionality: The application should function offline for core functionalities
(recipe management, grocery list creation). Consider optional online functionalities for
recipe import or nutritional data updates (if applicable).
• Security: Implement functionalities for user authentication (optional) if the application
stores user-defined data (e.g., recipes, preferences).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
12. Inventory Management System for Retail Stores
Project Goal:
Develop a desktop application for a retail store to manage inventory levels, track purchases, and
generate basic sales reports. This application will be implemented using C++ or Python with a
DBMS (MySQL or Oracle) for data storage and utilize object-oriented programming concepts.
Target Users:
• Store owners or managers responsible for stock management and purchasing.
Core Functionalities:
• Product Management:
• Allow adding, editing, and deleting products from the inventory.
• Store product information like name, description, category, price, and unit of
measurement.
• Track current stock levels for each product.
• Purchase Management:
• Manage purchase orders for new stock with functionalities for adding items,
specifying quantities, and selecting suppliers.
• Track purchase history and manage supplier information (optional).
• Sales Reporting (Optional):
• Generate basic sales reports by product or category for a specific period.
Object-Oriented Design:
• Product: Class representing a product with attributes like name, description, category, price
(optional unit of measurement).
• StockItem: Class representing a specific instance of a product in the inventory with
attributes like product (reference to Product class), quantity.
Database Tables:
1. Products:
• Columns: ProductID (primary key), Name, Description, Category, Price (data type
depends on currency).
2. Stock:
• Columns: StockID (primary key), ProductID (foreign key references
[Link]), Quantity (integer).
3. Suppliers (Optional):
• Columns: SupplierID (primary key), Name, Contact Information.
4. PurchaseOrders (Optional):
• Columns: PurchaseOrderID (primary key), Date, SupplierID (foreign key references
[Link]).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
5. PurchaseOrderDetails (Optional):
• Columns: PurchaseOrderDetailID (primary key), PurchaseOrderID (foreign key
references [Link]), ProductID (foreign key references
[Link]), Quantity.
6. Sales (Optional - can be a separate system or integrated):
• Columns: SaleID (primary key), Date, ProductID (foreign key references
[Link]), Quantity, Price (data type depends on currency).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
13. Gym Membership Management System
Project Goal:
Develop a desktop application for a gym to manage memberships, schedule classes, and track
member attendance. This application will be implemented using C++ or Python with a DBMS
(MySQL or Oracle) for data storage and utilize object-oriented programming concepts.
Target Users:
• Gym staff responsible for managing memberships, scheduling classes, and tracking
attendance.
Core Functionalities:
• Membership Management:
• Manage different membership types (duration, fees) and handle member registrations
with personal information and chosen membership details.
• Allow functionalities for member profile updates and membership renewals.
• Class Scheduling:
• Manage class schedules with information like name, instructor, date, time, and
capacity.
• Offer functionalities for adding new classes and editing existing schedules.
• Member Attendance:
• Track member attendance for each class session.
• Integrate functionalities for members to book spots in desired classes (optional).
Object-Oriented Design:
• Member: Class representing a gym member with attributes like name, contact information,
membership details (type, start date, end date).
• Class: Class representing a gym class with attributes like name, description, instructor, date,
time, capacity.
• Attendance: Class representing member attendance for a specific class session (optional,
can be linked to Member and Class classes).
Database Tables:
1. Members:
• Columns: MemberID (primary key), Name, Contact Information.
2. Memberships:
• Columns: MembershipID (primary key), MemberID (foreign key references
[Link]), Type, StartDate, EndDate, Fee (data type depends on
currency).
3. Classes:
• Columns: ClassID (primary key), Name, Description, Instructor, Date, Time,
Capacity.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
4. Attendance (Optional):
• Columns: AttendanceID (primary key), MemberID (foreign key references
[Link]), ClassID (foreign key references [Link]), Date.
5. Bookings (Optional - for member class reservations):
• Columns: BookingID (primary key), MemberID (foreign key references
[Link]), ClassID (foreign key references [Link]), Date.
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
14. Volunteer Management System for Non-Profit
Organizations
Project Goal:
Develop a desktop application for a non-profit organization to manage volunteer profiles, track
volunteer hours, and assign tasks for various projects or events. This application will be
implemented using C++ or Python with a DBMS (MySQL or Oracle) for data storage and utilize
object-oriented programming concepts.
Target Users:
• Volunteer coordinators responsible for managing volunteer information, assigning tasks, and
tracking volunteer engagement.
Core Functionalities:
• Volunteer Management:
• Create and manage volunteer profiles with information like name, contact
information, skills, and availability preferences.
• Allow functionalities for volunteers to update their profiles and express interest in
specific opportunities.
• Project/Event Management:
• Define details for various projects or events organized by the non-profit (name,
description, dates).
• Assign specific tasks associated with each project/event.
• Volunteer Assignment and Tracking:
• Assign volunteers to specific tasks within projects/events based on skill sets and
availability.
• Track volunteer hours for each assigned task.
• Communication (Optional):
• Offer functionalities for communication with volunteers through announcements,
event reminders, or task updates (limited to in-app messaging).
Object-Oriented Design:
• Volunteer: Class representing a volunteer with attributes like name, contact information,
skills, availability preferences.
• Project/Event: Class representing a project or event organized by the non-profit with
attributes like name, description, date range.
• Task: Class representing a specific task associated with a project/event with attributes like
description, required skills.
• Assignment (Optional): Class representing the assignment of a volunteer to a specific task
within a project/event (links Volunteer, Project/Event, and Task classes).
Database Tables:
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
1. Volunteers:
• Columns: VolunteerID (primary key), Name, Contact Information.
2. VolunteerSkills (Optional):
• Columns: VolunteerID (foreign key references [Link]), Skill (text).
3. Projects/Events:
• Columns: ProjectID (primary key), Name, Description, StartDate, EndDate.
4. Tasks:
• Columns: TaskID (primary key), ProjectID (foreign key references
Projects/[Link]), Description, RequiredSkills (text).
5. Assignments (Optional):
• Columns: AssignmentID (primary key), VolunteerID (foreign key references
[Link]), ProjectID (foreign key references
Projects/[Link]), TaskID (foreign key references [Link]), Hours
(integer).
6. VolunteerAvailability (Optional):
• Columns: VolunteerID (foreign key references [Link]),
DayOfWeek, StartTime, EndTime.
Additional Considerations:
• Implement functionalities for volunteers to track their own hours worked (optional, requires
user authentication).
• Explore functionalities for reporting volunteer hours by project/event or volunteer
(optional).
• Consider integrating basic communication features for announcements or task updates
(limited to in-app messaging).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
15. Event Management System for Conferences or Trade
Shows
Project Goal:
Develop a desktop application for managing conferences or trade shows. This application will
handle attendee registration, exhibitor booth management, and generate reports. The application
will be implemented using C++ or Python with a DBMS (MySQL or Oracle) for data storage and
utilize object-oriented programming concepts.
Target Users:
• Event organizers responsible for managing conference/trade show details, attendee
registration, and exhibitor booths.
Core Functionalities:
• Event Management:
• Create and manage event details (name, dates, location, speaker schedule - optional).
• Attendee Registration:
• Allow attendees to register for the event with functionalities for selecting ticket
types, accommodation (optional), and specifying dietary restrictions (optional).
• Manage attendee information and track registration status.
• Optionally, integrate functionalities for online payment processing (avoids complex
implementation details).
• Exhibitor Booth Management:
• Allow exhibitors to register and manage booth details (size, location).
• Track booth sales and generate reports.
• Reporting (Optional):
• Generate reports on attendee registrations, exhibitor booth sales, and revenue (if
integrated with payment processing).
• Offer functionalities for exporting reports in various formats (e.g., CSV, PDF).
Object-Oriented Design:
• Event: Class representing the conference/trade show with attributes like name, dates,
location, speaker schedule (optional).
• Attendee: Class representing an attendee with attributes like name, contact information,
ticket type, accommodation details (optional), dietary restrictions (optional).
• Exhibitor: Class representing an exhibitor with attributes like company name, contact
information, booth details (size, location).
Database Tables:
1. Events:
• Columns: EventID (primary key), Name, StartDate, EndDate, Location.
2. Attendees:
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
• Columns: AttendeeID (primary key), EventID (foreign key references
[Link]), Name, Contact Information, TicketType.
3. Accommodation (Optional):
• Columns: AccommodationID (primary key), AttendeeID (foreign key references
[Link]), Hotel, RoomType, ArrivalDate, DepartureDate.
4. DietaryRestrictions (Optional):
• Columns: AttendeeID (foreign key references [Link]),
DietaryRestriction (text).
5. Exhibitors:
• Columns: ExhibitorID (primary key), EventID (foreign key references
[Link]), CompanyName, Contact Information.
6. Booths:
• Columns: BoothID (primary key), EventID (foreign key references [Link]),
ExhibitorID (foreign key references [Link]), Size, Location.
7. Registrations (Optional - for tracking payment status):
• Columns: RegistrationID (primary key), AttendeeID (foreign key references
[Link]), PaymentStatus (text), PaymentDate (date).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
16. Competition Management System for Sports Tournaments
Project Goal:
Develop a desktop application for managing sports tournaments. This application will handle team
registration, scheduling matches, recording results, generating tournament standings, and optionally
tracking basic player statistics. The application will be implemented using C++ or Python with a
DBMS (MySQL or Oracle) for data storage and utilize object-oriented programming concepts.
Target Users:
• Tournament organizers responsible for managing team registration, scheduling matches,
tracking results, and overseeing the overall tournament operation.
Core Functionalities:
• Tournament Management:
• Create and manage tournament details (name, sport, participating teams, schedule
format - round robin, knock-out, etc.).
• Specify tournament rules and regulations (optional, text document integration).
• Team Registration:
• Allow teams to register for the tournament with functionalities for providing team
name, contact information, player information, and rosters.
• Manage team information and track registration status.
• Match Scheduling:
• Generate a tournament schedule based on the chosen format (round robin, knock-out,
etc.) and number of teams.
• Offer functionalities for manual adjustments to the schedule (optional, for
accommodating unforeseen circumstances).
• Result Recording:
• Track match results with functionalities for recording scores and basic player
statistics (e.g., goals scored, assists).
• Tournament Standings:
• Automatically generate and update tournament standings based on recorded match
results.
• Display functionalities for viewing team rankings, points, and goal difference.
• Reporting (Optional):
• Generate reports on tournament progress, team standings, and player statistics (if
enabled).
Object-Oriented Design:
• Tournament: Class representing the tournament with attributes like name, sport,
participating teams, schedule format, rules (optional - text document reference).
• Team: Class representing a team with attributes like name, contact information, players (list
of player objects).
• Player: Class representing a player with attributes like name, position (optional).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai
• Match: Class representing a match within the tournament with attributes like teams playing,
date, time, score, and player statistics (optional - list of PlayerStatistic objects).
• PlayerStatistic (Optional): Class representing a player's performance in a specific match
with attributes like player (reference to Player class), goals scored, assists (and other
relevant statistics depending on the sport).
Database Tables:
1. Tournaments:
• Columns: TournamentID (primary key), Name, Sport, StartDate, EndDate,
ScheduleFormat, Rules (text - optional).
2. Teams:
• Columns: TeamID (primary key), TournamentID (foreign key references
[Link]), TeamName, ContactName, ContactInformation.
3. Players:
• Columns: PlayerID (primary key), TeamID (foreign key references [Link]),
Name, Position (text - optional).
4. Matches:
• Columns: MatchID (primary key), TournamentID (foreign key references
[Link]), Team1ID (foreign key references [Link]),
Team2ID (foreign key references [Link]), Date, Time, Score1, Score2.
5. PlayerStatistics (Optional):
• Columns: PlayerStatisticID (primary key), MatchID (foreign key references
[Link]), PlayerID (foreign key references [Link]), GoalsScored
(integer), Assists (integer) - additional statistic columns can be added based on sport
(e.g., Saves for goalkeepers in soccer).
Additional Considerations:
• Implement functionalities for managing officials and volunteers assigned to the tournament
(optional).
• Explore user authentication features for secure access and role-based permissions (optional,
for larger tournaments).
• Consider integrating basic communication features for announcements or updates to teams
and officials (limited to in-app messaging).
Prepared by Mr. S. Saravanan, Asst. Prof. Amrita School of Computing, Chennai