✅  Registration is open for Professional Object-Oriented Programming!
Professional OOP Traning Program এর প্রজেক্ট ওয়ার্ক

Expense Tracking & Budget Control System

এই প্রোজেক্টটা শুধু “একটা ওয়েব অ্যাপ বানানো” না। এখানে আপনি শিখবেন architecture, code quality, unit testing, code review, এবং project management workflow — একটা real software dev team যেভাবে কাজ করে।

মাইন্ডসেট: Fear during change is not a human problem — it’s a design problem. এই প্রোজেক্ট change-friendly design শেখায়।

UI Overview (Sample)

UI overview sample screens

কেন এই Project Work জরুরি

Learning Outcomes

  • OOP (real): Entities, invariants, encapsulation, responsibility boundaries
  • Architecture: Separation of concerns, maintainability, change-friendly design
  • Testing: business rules কে testable করা (Unit Testing mindset)
  • Code Review: SRP, naming, refactoring decisions, duplication removal
  • Project Management: Trello board, task breakdown, workflow discipline

Project Thinking

এই সিস্টেমে CRUD আছে—কিন্তু তার চেয়েও বেশি আছে business rules: threshold alert, overspending policy, approval flow, historical integrity (soft delete), এবং reporting correctness (no negative expense)।

Outcome: প্রজেক্টটা শেষ করলে আপনার resume-এ “business-rule-driven system” হিসেবে strong entry যোগ হবে।

Project Requirements (High-level)

উদ্দেশ্য: ছোট এবং মাঝারি সাইজের প্রতিষ্ঠান যেন expense track করতে পারে, yearly budget set করতে পারে, overspending detect করতে পারে, এবং alerts + summaries + reports দিয়ে spending insight পায়।

Core Modules

  • User Account Management
  • Expense Category Management
  • Expense Entry Management
  • Yearly Budget Setup
  • Budget Monitoring & Overspending Control
  • Notifications & Alerts
  • Summaries / Insights / Reports
  • Shared / Team Expense (Optional)

UI Mockups (Example)

Three UI mockups example

User Stories (Complete)

নিচে প্রতিটা feature কে user story আকারে লেখা হলো। যেখানে available, সেখানে relevant UI image যুক্ত করা আছে।

User Account Management

US-1: User Registration

Core

As a User, I want to register using my email/mobile and password, so that I can securely access my expense data.

  • Email/Mobile must be unique
  • Password must satisfy minimum strength rules
  • Mandatory fields missing হলে registration complete হবে না

US-2: User Login

Core

As a User, I want to log in securely, so that I can manage my expenses and budgets.

  • Wrong credentials → generic error message
  • Multiple failed attempts → optional lock/delay (security)

US-3: Password Recovery

Core

As a User, I want to recover my password, so that I don’t lose access to my data.

  • OTP / email verification required
  • Reset token time-bound

Expense Category Management

US-4: Create Category

Core

As a User, I want to create expense category, so that I can organize my expenses and budgets according to my specific needs, and these categories will be available for selection during budget planning and expense entry.

Acceptance Criteria:

  • Category name must be unique (case-insensitive validation)
  • Category name cannot be empty or contain only whitespace
  • Successfully created categories are marked as "Active" by default
  • User receives confirmation message upon successful category creation
  • Appropriate error messages are displayed for validation failures
  • Maximum character limit for category name is defined (e.g., 50 characters)

US-5: Activate/Deactivate Category

Core

As a User, I want to deactivate or reactivate expense categories (by selecting one from the list, see US-6), so that I can control which categories are available for new expense entries and budget planning while preserving historical data integrity.

Acceptance Criteria:

  • Deactivated categories are hidden from selection lists during new expense entry and budget planning
  • Deactivated categories remain visible in historical reports and existing expenses
  • Existing expenses associated with a deactivated category retain their category assignment
  • User can reactivate a previously deactivated category
  • The system displays a confirmation prompt before deactivating a category
  • Category status (Active/Inactive) is clearly indicated in the category list
  • Deactivation does not delete the category or associated data

US-6: View and Manage All Categories

Important

As a User, I want to view a comprehensive list of all categories with their current status, so that I can efficiently manage my category structure by updating names, activating, or deactivating categories as needed.

Acceptance Criteria:

  • Display all categories in a list/table format with columns for: Category Name, Status (Active/Inactive), and Action (Edit)
  • Provide search/filter functionality to find specific categories
  • Category name uniqueness validation applies during updates
  • Sort categories alphabetically or by status
  • Changes are saved with appropriate confirmation messages

Expense Entry Management

US-7: Add Expense

Core

As a User, I want to record an expense with date, amount, and category.

  • Amount must be positive
  • Date cannot be in the future
  • Category is mandatory

US-8: Duplicate Expense Detection

Rule

As a User, I want to be warned if I accidentally enter the same expense twice.

  • Same Date + Amount + Category + Description → show warning (not block)
Duplicate expense detection UI
Duplicate warning UX: user কে aware করা, কিন্তু hard block না করা (configurable).

US-9: Edit/Delete Expense

Policy

As a User, I want to edit or delete expenses if I made a mistake.

  • Current year expenses → editable
  • Previous year expenses → restricted / approval required (optional)

Yearly Budget Setup

US-10: Set Yearly Budget

Core

As a User, I want to define my budget for a year, so that I can control spending.

  • Budget amount must be positive
  • Only one budget per year per category
  • Budget not set → treated as Unlimited
Set yearly budget UI
Yearly Budget screen: year + category-wise budget + save.

Budget Monitoring & Overspending Control

US-11: Threshold Monitoring

Rule

As a User, I want to be notified when my spending crosses 50%, 80%, or 100% of my budget.

  • Thresholds configurable (50/80/100 default)
  • Each threshold triggers only once per cycle (anti-spam)