✅  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 specific category for a year, so that I can control my spending limits per category and track whether my expenses stay within the planned budget.

Acceptance Criteria:

  • Budget amount must be a positive number (greater than zero)
  • Only one budget can be set per year per category (duplicate year-category combination is not allowed)
  • If no budget is set for a category in a given year, spending is treated as "Unlimited" (no restriction applied)
  • User must select an active category and a valid year when setting the budget
  • Deactivated categories are hidden from the category selection list during budget creation
  • Users can update an existing budget only for the current year and are not allowed to update budgets from any previous year.
  • Appropriate error messages are displayed for validation failures (e.g., non-positive amount, duplicate budget, etc)
  • User receives a confirmation message upon successful budget creation or update
  • Budget amount should support decimal values (e.g., 15000.50)
  • The system displays the currency format consistently when showing budget amounts

Set yearly budget UI
Yearly Budget screen: year + category-wise budget + save.

Budget Monitoring & Overspending Control

US-11: View Yearly Budget Overview

Core

As a User, I want to view the budget setup for the current year and also select a previous year to review past budgets, so that I can monitor my planned spending limits across all categories and make informed financial decisions.

Acceptance Criteria:

  • By default, the system displays the budget setup for the current year
  • User can select a different year from a dropdown/selector to view that year's budget
  • Display budgets in a list/table format with columns for: Category Name, Budget Amount, and Status (Set/Unlimited)
  • If no budget is set for a category in the selected year, the amount is displayed as "0" and marked as "Unlimited"
  • Deactivated (hidden) categories are only displayed if they have a budget amount set for the selected year; otherwise, they are excluded from the list
  • Deactivated categories with a budget value should be visually distinguished (e.g., grayed out or labeled as "Inactive")
  • Provide search/filter functionality to find specific categories in the budget list
  • Sort categories alphabetically or by budget amount
  • Budget amounts are displayed in a consistent currency format

Budget threshold monitoring notifications UI
Notification center: thresholds crossed → actionable alerts.

US-12: Soft Limit vs Hard Limit

Policy

As a User, I want the system to enforce overspending rules based on policy.

  • Soft Limit: allow expense, but mark as Over Budget
  • Hard Limit (optional): beyond 100% requires approval note/document
Soft limit vs hard limit comparison UI
Policy-driven behavior: Soft vs Hard enforcement.

Notifications & Alerts

US-13: Notification Trigger

Core

As a User, I want to receive alerts when important budget events happen.

  • In-app notifications default
  • Email/SMS optional
  • Anti-spam: same threshold/alert once per period

Expense Summary & Reporting

US-14: Monthly Summary

Core

As a User, I want a monthly summary of my expenses, so that I can understand my spending patterns.

  • Total spent
  • Category breakdown
  • Budget vs Spent vs Remaining
  • Over-budget categories highlight
Monthly summary dashboard UI
Monthly Summary dashboard: charts + breakdown + budget performance.

US-15: Adjustments (No Negative Expense)

Rule

As a User, I want corrections handled properly, so that reporting stays accurate.

  • Refund ≠ Negative Expense
  • Use Adjustment entry instead (audit-friendly)

Search, Filter & Insights

US-16: Filter Expenses

Core

As a User, I want to filter expenses by date, category, or amount.

  • Start date ≤ End date
  • Invalid filters rejected

US-17: Insights

Optional

As a User, I want to see spending trends, so that I can make better decisions.

  • Top spending categories
  • High spending months
  • Spending increase/decrease compared to previous period

Shared / Team Expense (Optional Advanced)

US-18: Create Group

Optional

As an Owner, I want to create a group with members, so that we can track shared expenses.

  • Role-based access: Owner vs Member
  • Owner sets budgets & policies

US-19: Approval Workflow

Optional

As an Owner, I want to approve over-budget expenses, so that spending stays controlled.

  • Over-budget entries require owner approval (policy-based)
  • Approval note/document may be required

Performace optimization & AI/ML usage (Advanced)

US-20: Make the Daily Expense report faster

Pro

এই প্রজেক্ট যদি SaaS এ Transform করা হয় তাহলে প্রতিদিন লক্ষ লক্ষ Expense Entry হবে, এক্ষেত্রে আমরা কিভাবে Daily Expense report এর লোডিং টাইম ১ মিনিটের পরিবর্তে ৩-৫ সেকেন্ডে নামিয়ে আনবো

US-21: How to use AI/ML for presenting Duplicate Entry

Pro

US-22: Incorporate AI-based chatbot for report queries

Pro

Trello Board (Project Management Setup)

এই প্রোজেক্ট আমরা Trello-তে manage করবো—task breakdown, ownership, review stage, testing stage সবকিছু real workflow অনুযায়ী।

Trello board sample for project management
Suggestion: Trello columns: Backlog → In Progress → Review → Testing → Done.