Projects

โœ•

1. ๐Ÿงญ Project Guidelines

    1.1 Project Submission Requirement
    1. Each student must submit two projects: 1. Solo Project 2. Group Project Group project can have maximum 3 members. Each project must have: โœ… Command-line interface โœ… SQLite database โœ… Proper Git repository โœ… Meaningful commit history โœ… Clear project structure โœ… Working project demo
    1.2 CLI Requirement
    1. All projects must have a command-line interface, also called CLI. CLI means users interact with the project through terminal or command prompt. Example: 1. Register user 2. Login 3. Add record 4. View records 5. Export report 6. Exit The project should show a menu and allow users to choose options.
    1.3 Optional GUI
    1. GUI is optional. Students who want to explore more can create GUI using libraries like: - Tkinter - PyQt - Kivy ๐Ÿ“Œ GUI is bonus only. ๐Ÿ“Œ CLI is mandatory even if GUI is created.
    1.4 Database Requirement
    1. All project data must be stored in SQLite database. Do not store main project data only in text files, CSV files, or JSON files. CSV files can be used for export. Example: Project data: Store in SQLite database. Report export: Can export to CSV file.
    1.5 Git Requirement
    1. Each project must have a proper Git repository. Repository should include: - Source code - README file - .gitignore file - Meaningful commit history Examples of good commit messages: - Initial project setup - Add user registration feature - Add SQLite database connection - Add CSV export feature - Add email notification feature Avoid unclear commit messages like: - update - final - changes - fixed
    1.6 AI Usage Policy
    1. Using AI tools is allowed for code generation and debugging. However, students must: โœ… Understand the generated code โœ… Be able to explain the code โœ… Be able to modify the code โœ… Know how the database tables are designed โœ… Know how main features work ๐Ÿ“Œ If you cannot explain the code, it will not be considered your work.
    1.7 Common Project Requirements
    1. Every project should include: - CLI menu - User input validation - SQLite database - Add/view/update/delete functionality where needed - CSV export where mentioned - Chart generation where mentioned - Email notification where mentioned - Proper error handling - README file - Git commits
    1.8 Suggested Project Structure
    1. Example: project_name/main.pydatabase.pymodels.pyservices.pyreports.pyemail_utils.pyrequirements.txtREADME.md.gitignoredatabase.dbExplanation: main.py: Main CLI menu and program entry point. database.py: Database connection and table creation. models.py: Table-related structure or helper functions. services.py: Main business logic. reports.py: CSV export and chart generation. email_utils.py: Email sending logic. requirements.txt: List of required third-party libraries. README.md: Project explanation and usage guide. Sample Project: Inventory Management System

2. ๐Ÿ“ค Final Submission Checklist

    2.1 Before Submitting
    1. Before submitting each project, check the following: โœ… Project runs from CLI โœ… SQLite database is used โœ… Tables are created properly โœ… Add/view/update/delete features work โœ… CSV export works where required โœ… Chart generation works where required โœ… Email notification works where required โœ… Git repository exists โœ… Commit history is meaningful โœ… README file explains the project โœ… Code is understandable by all group members โœ… No unnecessary files are pushed to GitHub

3. ๐Ÿ“„ README Requirements

    3.1 README Contents
    1. Each project should include a README.md file. README should contain: - Project title - Project overview - Features - Technologies used - How to run the project - Database tables used - Screenshots or sample CLI output if possible - Team members for group project - AI usage note if AI was used

4. ๐Ÿงช Demo Expectations

    4.1 What Students Should Explain
    1. During project demo, students should be able to explain: - What problem the project solves - How the CLI works - How data is stored in SQLite - What tables are used - How Git was used - How email/report/chart features work - Which part was written or improved using AI - What challenges were faced

Practice QuestionsNot started

  1. Project 1: Leave Management System

    Question 1 of 5

      1.1 Project Overview
      1. This system is used to manage employee leave requests in a company.
      2. Employees can apply for leave.
      3. Managers can approve or reject leave requests using CLI.
      1.2 Real-World Example
      1. An employee wants leave from 10 June to 15 June.
      2. Instead of sending messages or emails manually, the employee submits a leave request in the system.
      3. The manager checks the request and decides whether to approve or reject it.
      1.3 Core Features
      1. Employee registration
      2. Employee login
      3. Employee can apply for leave
      4. Employee enters start date, end date, and reason
      5. Employee can view leave status
      6. Manager login
      7. Manager can view all leave requests
      8. Manager can approve or reject leave using leave ID
      9. Manager can export leave requests to CSV
      10. Manager can generate bar chart of leave status distribution
      11. Email notification is sent to employee after approval or rejection
      12. All data is stored in SQLite database
      1.4 Suggested Tables
      1. employees table: id, name, email, password, role
      2. leave_requests table: id, employee_id, start_date, end_date, reason, status, created_at
      1.5 Example Flow
      1. Employee logs in through CLI menu.
      2. Employee applies for leave.
      3. Leave request is saved with status Pending.
      4. Manager logs in.
      5. Manager views all leave requests.
      6. Manager approves or rejects the request.
      7. Employee receives email notification.
      1.6 Optional GUI
      1. Window showing leave requests in table format
      2. Buttons to approve or reject requests
      3. Filter by Pending, Approved, Rejected
  2. Project 2: Support Ticket Handler

    Question 2 of 5

      2.1 Project Overview
      1. This system is used to manage customer complaints or support requests.
      2. Users create support tickets.
      3. Support staff update ticket status step by step using CLI.
      2.2 Real-World Example
      1. A user cannot log in to a website.
      2. The user creates a support ticket describing the issue.
      3. The support team checks the ticket and updates the status until the issue is solved.
      2.3 Core Features
      1. User registration
      2. User login
      3. User can create support ticket
      4. Ticket should have title, description, and priority
      5. System assigns unique ticket ID automatically
      6. Support staff login
      7. Support staff can view all tickets
      8. Support staff can update ticket status
      9. User can check ticket status using ticket ID
      10. Support staff can export ticket list to CSV
      11. Support staff can generate pie chart for tickets by status
      12. Email notification is sent when ticket status changes
      13. All data is stored in SQLite database
      2.4 Ticket Status Options
      1. Possible ticket status values: Open, In Progress, Resolved
      2. Possible priority values: Low, Medium, High
      2.5 Suggested Tables
      1. users table: id, name, email, password, role
      2. tickets table: id, user_id, title, description, priority, status, created_at, updated_at
      2.6 Example Flow
      1. User creates ticket: Internet not working.
      2. Ticket is saved with status Open.
      3. Support staff views ticket list.
      4. Support staff updates status to In Progress.
      5. Support staff finally marks it as Resolved.
      6. User receives email updates.
      2.7 Optional GUI
      1. Dashboard showing all tickets
      2. Filter by status and priority
      3. Buttons to update ticket status
  3. Project 3: Course Management System

    Question 3 of 5

      3.1 Project Overview
      1. This system is used to manage students and course enrollment in schools or institutes.
      2. Students can register and enroll in available courses using CLI.
      3. Admin can manage courses.
      3.2 Real-World Example
      1. A student wants to join a Python course.
      2. The student selects the course from the system.
      3. The system enrolls the student and stores the record.
      3.3 Core Features
      1. Student registration
      2. Student login
      3. Admin login
      4. Admin can add courses
      5. Admin can update or delete courses
      6. Students can view available courses
      7. Students can enroll in a course
      8. System prevents duplicate enrollment
      9. Students can view their enrolled courses
      10. Admin can export course enrollment list to CSV
      11. Admin can generate bar chart showing number of students in each course
      12. Email confirmation is sent after successful enrollment
      13. All data is stored in SQLite database
      3.4 Suggested Tables
      1. students table: id, name, email, password
      2. courses table: id, course_name, description, duration, fee
      3. enrollments table: id, student_id, course_id, enrollment_date
      3.5 Example Flow
      1. Student registers in the system.
      2. Admin adds course: Python Basics.
      3. Student views available courses.
      4. Student enrolls in Python Basics.
      5. System checks duplicate enrollment.
      6. Enrollment is saved in database.
      7. Email confirmation is sent to student.
      3.6 Optional GUI
      1. Course list displayed in table format
      2. Enrollment button
      3. Admin dashboard for course management
  4. Project 4: Expense Tracker

    Question 4 of 5

      4.1 Project Overview
      1. This system helps users track income and expenses.
      2. It provides summaries to help users understand spending habits.
      4.2 Real-World Example
      1. A student records daily expenses like food and transport.
      2. At the end of the month, the student checks how much money was spent and saved.
      4.3 Core Features
      1. User registration
      2. User login
      3. Add income entry
      4. Add expense entry
      5. Each entry should have category, amount, date, and note
      6. View total income
      7. View total expenses
      8. View current balance
      9. View monthly report
      10. Export monthly report to CSV
      11. Generate bar chart of category-wise expenditure
      12. Email monthly report to user
      13. All data is stored in SQLite database
      4.4 Suggested Tables
      1. users table: id, name, email, password
      2. transactions table: id, user_id, type, category, amount, date, note
      3. Transaction type values: Income, Expense
      4.5 Example Flow
      1. User logs in.
      2. User adds income: Pocket money 5000.
      3. User adds expense: Food 200.
      4. System calculates current balance.
      5. User views monthly report.
      6. Report is exported to CSV.
      7. Report is sent by email.
      4.6 Optional GUI
      1. Dashboard with income and expense summary
      2. Charts for category-wise spending
      3. Monthly summary view
  5. Project 5: Inventory System

    Question 5 of 5

      5.1 Project Overview
      1. This system is used to manage product stock in a shop or small business.
      2. It helps track products, sales, and stock levels.
      5.2 Real-World Example
      1. A shop sells products like laptops and phones.
      2. When a product is sold, stock is reduced automatically.
      3. If stock becomes low, the system alerts the manager.
      5.3 Core Features
      1. Admin login
      2. Add new products
      3. Update product quantity
      4. Update product price
      5. Delete products
      6. View all products in CLI table format
      7. Record product sales
      8. Reduce stock after sales
      9. Show low stock products
      10. Send low stock alert using email
      11. Export product list to CSV
      12. Generate stock report
      13. All data is stored in SQLite database
      5.4 Suggested Tables
      1. products table: id, name, category, price, quantity, low_stock_limit
      2. sales table: id, product_id, quantity_sold, sale_date, total_amount
      5.5 Example Flow
      1. Admin adds product: Laptop, 10 units.
      2. A sale happens: 2 laptops sold.
      3. Stock reduces from 10 to 8.
      4. System checks stock level.
      5. If stock is below low stock limit, email alert is sent.
      6. Admin updates stock if needed.
      5.6 Optional GUI
      1. Product dashboard with stock table
      2. Search and filter products
      3. Buttons for add, update, and delete
      4. Low stock warning display