0% found this document useful (0 votes)
45 views20 pages

Dir Ex1

The document outlines the development of a Personal Finance Tracker project aimed at enhancing financial literacy and budget management through a command-line application. It details the project's objectives, requirements, technology stack, and design considerations, emphasizing user-friendly features and data privacy. The project also adheres to GDPR principles regarding the handling of Personally Identifiable Information (PII) and aims to provide a lightweight, offline solution for effective personal finance management.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views20 pages

Dir Ex1

The document outlines the development of a Personal Finance Tracker project aimed at enhancing financial literacy and budget management through a command-line application. It details the project's objectives, requirements, technology stack, and design considerations, emphasizing user-friendly features and data privacy. The project also adheres to GDPR principles regarding the handling of Personally Identifiable Information (PII) and aims to provide a lightweight, offline solution for effective personal finance management.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 20

EX.

NO:1 Selecting a project, define the process/steps to


driving them to completion
DATE:

Aim:

To select a project, define the process/steps to driving them to completion for Personal
Finance Tracker project.

1. Project Selection Overview

The motivation behind selecting the Personal Finance Tracker project stems from
the growing importance of financial literacy and budget management in everyday life.
Many individuals struggle to maintain consistent oversight of their income, expenses, and
savings goals, leading to poor financial decisions and unplanned expenditures. This project
addresses that gap by providing a simple yet effective tool for personal financial
management.

The choice to implement this as a command-line application using Python ensures


accessibility and ease of use, especially for beginners and users without access to complex
financial software. The use of SQLite allows for secure, local, and lightweight data storage
without the need for internet connectivity or external servers. Integration with Matplotlib
brings valuable insights through visual representations of spending habits, enabling users to
understand and improve their financial behavior.

This project not only demonstrates core data handling and visualization techniques but also
highlights responsible software development practices by focusing on user needs and practical
problem-solving. In essence, it combines technical learning with real-world utility, making it an ideal
choice for personal, academic, or portfolio-building purposes.

2. Problem Identification

In today’s fast-paced digital world, individuals often face challenges when it comes to
managing their personal finances effectively. While various apps and software exist for
financial tracking, many are either too complex, require subscriptions, or lack customization
to suit individual needs. As a result, users may:

 Lose track of income and expenses


 Fail to monitor budget limits
 Lack clear insights into spending patterns
 Miss savings goals due to poor planning
 Feel overwhelmed by financial data spread across different sources

Additionally, many users prefer lightweight, offline solutions that don’t rely on cloud
connectivity or external accounts. For those who are new to personal finance management, a
simple yet functional tool is essential for cultivating disciplined spending habits and
achieving financial goals.

Therefore, there is a clear need for a user-friendly, command-line-based personal finance


tracker that enables users to:

 Log income and expenses conveniently


 Monitor balances in real time
 Visualize spending habits clearly
 Set and track savings goals
 Operate without internet dependency

This project directly addresses these needs by providing a minimal, functional, and
effective solution using accessible technologies like Python, SQLite, and Matplotlib.

3. Objective Definition

The main objective of this project is to develop a command-line-based Personal


Finance Tracker that helps users monitor their financial activities. The key goals include:

 Providing a simple interface to record income and expenses


 Automatically calculating total income, expenses, and remaining balance
 Categorizing expenses for better insights
 Setting and tracking progress toward savings goals
 Generating visual reports using charts for better understanding of spending patterns
 Encouraging individual responsibility in financial planning

4. Requirement Gathering

Functional Requirements:

 Add Income with amount and description


 Add Expense with category, amount, and description
 View a financial summary (total income, expenses, and balance)
 Set and track savings goals
 Visualize data using bar charts, pie charts, and line graphs
 Store data persistently in a local database

Non-Functional Requirements:

 Should be simple and easy to use via command line


 Lightweight and offline-capable
 Data should be saved securely and be accessible across sessions
 Visualizations should be clear and informative

5. Technology Selection

Technology Purpose

Python Core programming language for logic

SQLite3 Embedded database for storing transactions

Matplotlib To create charts and graphs

CLI (Terminal) Interface for user interaction

Reason for selection:


Python is easy to learn and widely used for scripting and data analysis. SQLite is a file-based,
serverless database — perfect for local apps. Matplotlib provides robust charting options with
minimal setup.
6. Design and Architecture

 Modular Design Approach


The application follows a modular structure, separating core functionalities into different
Python files (e.g., database handling, user interface, visualization), ensuring maintainability
and scalability.

 Menu-Driven Command-Line Interface


A user-friendly CLI allows users to interact with the system using numbered menu options,
making it intuitive for all users, especially those unfamiliar with advanced UIs.

 SQLite Database Integration


The application uses SQLite as a lightweight, file-based relational database to store income,
expenses, and savings goals locally and persistently without requiring a server.

 Categorized Expense Tracking


Expenses are stored with associated categories (like food, transport, etc.), allowing for
detailed analysis and visualization of spending habits.

 Visual Analysis Module


A dedicated module generates bar charts, pie charts, and line graphs using Matplotlib, helping
users better understand financial trends and distributions.

 Data Validation and Input Handling


Each user input is validated to prevent incorrect data entries (e.g., negative amounts or
missing fields), ensuring the accuracy and integrity of the financial data.

 Separation of Concerns
The logic is clearly separated into components:

 main.py: Menu and control flow


 db_manager.py: All database interactions
 charts.py: Visualization functions
 goals.py: Logic for managing savings goals

7. Implementation
The application is implemented using Python’s modular approach.
Key components include:

 User Menu (main.py): Displays options and handles user input


 Database Layer (SQLite): Handles CRUD operations for income, expenses, and
goals
 Visualization (charts.py): Generates:
o Pie chart of spending by category
o Line chart of expenses over time
o Bar chart comparing income vs expenses

Each feature is handled as a separate function, ensuring modularity and reusability.

8. Testing and Validation

Manual Testing:

 All functions tested with both valid and invalid inputs


 Verified database updates on each operation
 Checked visual output correctness for different data sets

Test Cases:

Feature Test Case Status

Add Income Valid and invalid input formats ✅

Add Expense Category handling and input checks ✅

View Summary Calculation of balance and totals ✅

Set Goals Edge cases for goal input ✅

Visualizations Graph generation with no or full data ✅

9. Presentation and Deployment


Presentation:

 CLI demo showing each menu option in action


 Charts saved as PNG images for visual demonstration
 Optionally, integrate with tools like Streamlit for UI-based demo in future

Deployment:

 Platform-independent (Linux, Windows, MacOS)


 Easy to run using:
 python main.py

 Hosted on GitHub for public access


 Future scope: Convert to a desktop or web application for broader accessibility
Result:

Thus to select a project, define the process/steps to driving them to completion for
Personal Finance Tracker project was successfully completed.

EX.NO:2 Student allowed to choose an existing or new project with


requirement and objective.
DATE:

Aim:
To choose an existing or new project with requirement and objective for Personal
Finance Tracker project.

Existing Systems vs. Proposed System

In today’s digital environment, a variety of personal finance management tools and


applications are available in the market such as Mint, YNAB (You Need A Budget),
PocketGuard, and others. These systems typically offer cloud-based services that track
income, categorize expenses, generate financial reports, and assist users in budgeting.
However, most of these platforms require user sign-up, come with premium features locked
behind a paywall, and store financial data on external servers, raising potential privacy
concerns.

Furthermore, these applications often have complex user interfaces and may include features
that are unnecessary for users with simple tracking needs. Students, beginners, or users from
non-technical backgrounds may find them overwhelming or inaccessible. Moreover, most
existing platforms do not support offline usage and may lack transparency in how data is used
or visualized.

To address these limitations, the proposed system titled “Personal Finance Tracker” is
developed as a lightweight, offline, and open-source command-line application that allows
users to track their financial activities locally and privately. This application uses Python as
the core language, SQLite for local data storage, and Matplotlib for visualizing financial
insights. It focuses on simplicity, data privacy, and educational value, especially for students
and individuals who want to build healthy financial habits while learning technical skills. The
tracker supports features like income/expense entry, savings goal management, and spending
visualizations, all in an intuitive and beginner-friendly environment

Requirement of the Project

The Personal Finance Tracker aims to provide a secure, accessible, and easy-to-use tool
that empowers users to manage their income, expenses, and financial goals. The key
requirements for this project include:

 A command-line interface (CLI) to interact with users through text-based options.


 A module to record income with descriptions and timestamps.
 A system to track categorized expenses, allowing users to assign custom labels (e.g.,
Food, Transport, Bills).
 A summary view that displays the total income, expenses, and current balance.
 A feature to set and monitor savings goals, providing motivational tracking for
users.
 Visual analytics using bar charts, pie charts, and line graphs to help users understand
their financial behavior.
 Local database integration (SQLite) to securely store all transactions and user-
defined categories without internet dependency.
 Modular code structure allowing easy updates or future feature additions such as
exporting reports or monthly summaries.

The entire project must be lightweight, run entirely offline, and offer a balance between
functionality and simplicity, without relying on external cloud-based systems or third-party
logins

Objective

The main objective of the “Personal Finance Tracker” project is to design and
develop a simple, secure, and user-friendly financial tracking system that enables users to
take control of their money by keeping a clear record of their income, expenses, and savings
goals.
Many people struggle to manage their finances due to a lack of awareness, organization, or
access to intuitive tools. This tracker addresses that issue by offering a transparent and
educational platform that emphasizes financial literacy through practical usage.

Through this project, users—especially students and beginners—can gain real-time insights
into their financial habits and adopt responsible money management practices. The offline
nature of the tool ensures data privacy, while its open-source model encourages further
development and learning in Python, databases, and data visualization.

🔹 Specific Objectives Include:

 To develop an offline, command-line tool for income and expense tracking.


 To help users understand their financial habits through visualizations of spending
patterns.
 To enable users to set and monitor savings goals for financial planning.
 To use Python and SQLite for fast and secure data management.
 To offer data visualization using Matplotlib to display trends and summaries.
 To build an open-source project that can be used, modified, or extended by students or
developers.
 To promote technical learning in areas such as Python programming, database
design, and data analytics
Result:
Thus to choose an existing or new project with requirement and objective for
Personal Finance Tracker project was successfully completed.

EX.NO:3 Collecting the relevant information about the project.

DATE:

Aim:

To collect a relevant information for Personal Finance Tracker project.

collecting relevant information

Once the Personal Finance Tracker project has been finalized, it is crucial to gather
all the relevant technical, functional, and domain-specific information required to design and
implement the system effectively. The success of any project, especially one dealing with
finance tracking and data visualization, depends on how well the requirements are
understood, researched, and analyzed. For the Personal Finance Tracker system, this step
involves studying existing financial tools, understanding user needs, reviewing technologies,
and ensuring data privacy and security.

Key Areas of Research and Information Collection

Existing Finance Management Systems

 Analyzed popular finance tools like Mint and YNAB to understand their features and
limitations, especially regarding cost and privacy concerns.
 Identified the need for a lightweight, offline, and open-source alternative, which is
both accessible and free from subscription-based models.

Tracking and Categorizing Financial Data


 Researched methods to categorize income and expenses, enabling users to track
financial activities efficiently.
 Implemented custom category labels (e.g., Food, Transport) to allow flexibility and
personalization in financial tracking.

Data Visualization

 Investigated libraries like Matplotlib to provide visual representations of financial


data through bar charts, pie charts, and line graphs.
 Focused on creating clear and understandable visualizations for users to easily
interpret their spending patterns and financial behavior.

Database and Backend Architecture

 Chose SQLite for its lightweight, offline capabilities, ensuring secure local storage
for financial data.
 Used Flask as the backend framework to manage the application’s routing and logic,
ensuring a simple, effective system structure.

Security and Data Privacy

 Ensured that all financial data is stored locally and not in the cloud, prioritizing user
privacy and data protection.
 Followed GDPR guidelines to ensure compliance with data privacy regulations,
offering ethical data handling practices.

User Interface (UI) Design

 Designed the system to use a command-line interface (CLI) that is simple,


accessible, and easy to navigate for non-technical users.
 Focused on minimizing complexity, ensuring that users can quickly input and review
their financial data.

Offline Functionality
 Researched offline data management strategies to allow users to track their finances
without the need for an internet connection.
 Ensured that all features, including data input, saving goals, and visualizations,
function seamlessly without online dependencies.

Customization and Future Expansion

 Built the system with a modular structure to allow easy future updates, such as adding
budgeting tools or recurring expense tracking.
 Focused on flexibility to accommodate user needs and potential scalability for future

development, including multi-user support.

Open-Source and Licensing

 Chose the MIT License to ensure the project remains open-source, enabling free use,
modification, and distribution by others.
 Planned to host the code on GitHub, allowing collaboration, contributions, and
development by the open-source community.

Information Sources Used:

 Official documentation of Python libraries like SQLite, Matplotlib, and Flask


 Research on personal finance management tools and budgeting methods
 Online tutorials on Python-based financial tools
 Blogs and case studies related to finance management and budgeting
 Resources on data visualization best practices and chart design
 Research on data security standards for local financial data storage
 Open-source licensing documentation (MIT License, GNU GPL)
Result:

By collecting the relevant information at this stage, the Personal Finance Tracker project is
positioned for successful design and implementation. The research ensures that the system meets user
needs for privacy, simplicity, and educational value, while also aligning with best practices in
financial data management, budgeting, and visualization. With a well-informed understanding of user
needs, security considerations, and effective technologies, the project is now ready to move forward
with detailed design and development phases.

EX.NO:4 Including PII information related to GDPR.

DATE:

Aim:

To include PII information related to GDPR for Personal Finance Tracker project.

Personally Identifiable Information (PII)

In the Personal Finance Tracker project, it is essential to handle Personally


Identifiable Information (PII) with great care, as the application may collect sensitive
financial data such as income, expenses, and savings details. While financial data may not be
directly classified as PII, the project still needs to consider privacy, security, and ethical
management of users' personal data. Ensuring compliance with data protection regulations
such as the General Data Protection Regulation (GDPR) is crucial, especially since the
tool is designed to be lightweight and offline, emphasizing data privacy.

What is PII?

Personally Identifiable Information (PII) refers to any information that could be used to
identify an individual. Common PII elements may include:

 Full Name
 Address
 Bank account details
 Payment methods
 Transaction history

Though the Personal Finance Tracker does not directly collect PII like email or phone
numbers, it still handles sensitive financial data that must be safeguarded according to
privacy standards.

How GDPR Applies to This Project

The General Data Protection Regulation (GDPR) is an EU law that mandates how
personal data should be handled by organizations, ensuring the privacy and security of
individuals' data. While the Personal Finance Tracker is a local, offline application and not
commercial in nature, it is still essential to follow GDPR principles to maintain ethical
standards and build user trust.

Key GDPR principles applicable to this project include:

1. Data Minimization: The application collects only essential financial information to


track and categorize income and expenses, minimizing the amount of sensitive data
collected.
2. Transparency: Even though no personal information (like email addresses or phone
numbers) is stored, users will be informed about how their data is used and processed,
ensuring clarity about the app’s privacy approach.
3. Purpose Limitation: The application will only use financial data to track and analyze
users' financial activities, and not for any other purposes.
4. Data Retention Policy: Since the application operates offline and stores data locally
in SQLite, all data will be stored solely on the user's device. The project does not
require server-side storage, minimizing data retention risks.
5. Consent: No explicit consent is required since the system operates entirely on the
user's local device, but users are provided with privacy guidelines and assurances on
how their data is used.
6. Data Security: The financial data is stored securely in local databases, and the app
will ensure that sensitive data is encrypted and protected against unauthorized access.
Privacy-First Measures in the Personal Finance Tracker

To ensure user privacy and compliance with PII protection standards, the Personal
Finance Tracker will incorporate the following technical and policy-level decisions:

1. Offline Storage: All financial data is stored locally on the user’s device using SQLite,
and no data is transmitted over the internet, thus minimizing exposure to potential
data breaches.
2. No Data Retention: As there is no server-side storage, data is not retained
permanently. Users can choose to delete their data at any time, ensuring full control
over their financial records.
3. Transparency on Data Usage: Although the application doesn’t require explicit
consent for processing, users are provided with clear information on how their data is
used for local tracking and visualization purposes.
4. Sensitive Data Handling: The system avoids storing or using highly sensitive
financial data (such as bank account numbers or payment methods). The app focuses
on income, expenses, and goals, without storing or transmitting sensitive financial
identifiers.
5. Security of Local Data: Financial data stored on the user’s device will be encrypted
to protect it from unauthorized access. The system will also provide an option for
users to create a password or PIN to further protect their data.
6. User Control and Data Deletion: Users have the ability to delete their financial
records anytime from the local database, offering them full control over their data.
Result:

The Personal Finance Tracker prioritizes user privacy by operating entirely offline, storing
data locally on the user’s device, and avoiding the collection of sensitive PII. Following GDPR
principles, the project ensures ethical data management, security, and transparency. This focus on
privacy and data security strengthens user trust and encourages responsible financial tracking
without compromising personal information.

EX.NO:5 Preparing a working outline.

DATE:

Aim:

To prepare a working outline for Personal Finance Tracker Project.

Working Outline for Personal Finance Tracker

A working outline is critical for ensuring that the Personal Finance Tracker project progresses
smoothly, remains well-organized, and achieves its goals on time. It serves as a roadmap, guiding the
development from concept through deployment, and keeping the team focused on each phase of the
project. The working outline for the Personal Finance Tracker covers all major phases — planning,
research, design, development, testing, deployment, and documentation. Each phase is aligned with
specific deliverables to ensure the project's objectives are met efficiently.

1. Problem Identification and Requirement Gathering


o Identify the challenges faced by users in managing personal finances: Assess how
individuals struggle with tracking income, expenses, and setting savings goals.
o Research existing financial tracking tools: Understand the features, strengths, and
limitations of current finance management tools.
o Define the project scope: Focus on key functionalities such as income/expense
tracking, savings goal tracking, and visualizing financial data through simple charts.

2. Technology Stack Finalization


o Frontend: HTML, CSS, Bootstrap (for a responsive user interface)
o Backend: Python (for handling user inputs and financial data management)
o Database: SQLite (for storing user financial records, transactions, and goals)
o Visualization: Matplotlib (for generating charts and graphs to visualize financial
trends)
o Additional Libraries: NumPy (for calculations and financial analytics), Flask (for
backend routing and web integration)

3. User Registration and Authentication Module


o Allow users to create an account: Let users sign up and store their login credentials
securely.
o Implement login/logout functionality: Ensure a secure login system for users to
access their financial data.
o Password encryption: Use proper hashing techniques (e.g., bcrypt) for password
storage to ensure user privacy.

4. Income and Expense Tracking Module


o Allow users to input income and expenses: Enable users to add transactions easily.
o Categorize income and expenses: Allow users to categorize transactions (e.g., rent,
groceries, salary).
o Real-time calculations: Automatically calculate the total income, expenses, and
remaining balance.

5. Savings Goals Module


o Allow users to set savings goals: Let users define financial targets (e.g., saving for a
vacation, building an emergency fund).
o Track progress: Show users how much they have saved toward their goals and the
percentage completion.
o Generate alerts: Send reminders or notifications if users are falling behind on their
savings goals.

6. Data Visualization and Analytics


o Generate visualizations: Use Matplotlib to create charts and graphs showing income
vs. expenses, monthly spending trends, and savings progress.
o Interactive dashboard: Present the financial summary in a clean, user-friendly
interface with easily interpretable visuals.

7. Privacy and Security Integration


o User privacy: Ensure that no sensitive financial data is shared or transmitted without
user consent.
o Data storage: Financial data will be securely stored in an SQLite database, ensuring
that user records are only available to the user who input them.
o Secure password handling: Implement secure authentication and protect user
passwords using hashing algorithms.

8. Testing and Evaluation


o Unit testing for modules: Test the income/expense tracking, goal setting, and data
visualization features independently.
o End-to-end testing: Ensure that the entire system, including front-end, back-end, and
database, works seamlessly together.
o User testing: Collect feedback from potential users to evaluate usability and
functionality.

9. Final Deployment
o Deploy the web application: Host the platform on a local server or on cloud
platforms like Heroku or Render for easy access.
o Ensure compatibility: Ensure the system works across multiple devices and
browsers to provide a consistent user experience.

10.Documentation and Reporting

 Document the entire project: Include an introduction, objectives, system architecture, and
detailed explanations of modules.
 Screenshots and outputs: Provide screenshots showing how the system works (e.g., charts,
dashboards, transaction forms).
 Code structure: Include a breakdown of the project’s codebase, with explanations for key
sections of the code.
 User guide and contribution guidelines: Since it’s an open-source project, provide
instructions for other developers to contribute to the project or adapt it for their needs.

Final Deliverables

 A fully functional Personal Finance Tracker with user authentication, income/expense


tracking, savings goal management, and data visualization.
 Source code with clear documentation and comments to ensure maintainability.
 A final report document with system architecture, module explanations, and screenshots.
 Presentation slides summarizing the project for submission or presentation.

Working outline summary

The Working Outline for the Personal Finance Tracker project provides a
comprehensive roadmap for the development and deployment of the application, which will
help users efficiently manage their finances. The outline begins with identifying the problems
faced by users and gathering the necessary requirements, followed by the selection of an
appropriate technology stack, including Python (Flask) for the backend and SQLite for data
storage. Key modules include income and expense tracking, savings goal management, data
visualization, and security measures to protect user privacy. The system will include features
like user registration, secure authentication, and financial data analysis with visual reports.
Testing will be carried out at various stages, ensuring all components work seamlessly.
Finally, the application will be deployed on cloud platforms like Heroku, and the project will
be documented with detailed reports and user guides. The project will deliver a fully
functional, secure, and user-friendly finance management tool, alongside well-documented
code and project reports.
Result:
A clear working outline was developed to guide the Personal Finance Tracker from
planning to development. Each phase ensures the project stays organized functional and
aligned with user needs.

You might also like