FinTrack is a user-friendly web application designed to help you manage your finances effortlessly. With FinTrack, you can:
- Add and categorize your earnings and expenses.
- View your current balance and transaction history.
- Easily manage and edit your financial transactions.
Whether you are looking to keep track of your daily expenses or manage your monthly budget, FinTrack provides a simple and effective solution.
- HTML5: Provides the structure and content of the web page.
- Tailwind CSS: A utility-first CSS framework for styling the application.
- JavaScript: Adds interactivity and functionality to the web application.
- UUID: A library to generate unique identifiers for each transaction.
- SweetAlert: A library for creating beautiful and customizable alert boxes.
- Add and categorize earnings and expenses.
- View current balance and transaction history.
- Edit and delete transactions.
- Stylish confirmation dialog boxes using SweetAlert.
- Save transactions locally using
localStorage
. - Responsive design with Tailwind CSS.
- Unique identifiers for each transaction using UUID.
- Add a feature to ask the user whether they want to save the transactions locally in the browser or not, using
swal
library confirmation box when the user has added their first transaction. - Implement backend using Express.js and RESTful APIs.
- Build a 'Search' transactions feature to filter transactions based on source, amount, or type of transactions.
- Implement a feature to add the date of the transaction.
- Add a feature where the present month will be the default month for adding transactions.
- Build functionality to generate monthly income/P&L statements in PDF format, allowing the user to select the month.
- Implement user authentication.
- Add a feature to add and edit notes for each transaction.
Throughout the development of FinTrack, several key learnings and insights were gained:
- Submit Event's submitter property: Leveraged the submitter property in the event handler to access the button that submitted the form, enhancing form handling capabilities.
- Skypack CDN: Utilized Skypack CDN service for importing and using NPM packages, such as the SweetAlert library, directly into the browser as ES modules.
- SweetAlert Library: Implemented SweetAlert for displaying stylish confirmation dialog boxes, particularly for user confirmation on transaction deletion.
- localStorage API: Gained a deep understanding of the
localStorage
API, its key features, and methods for manipulating data within localStorage. - DOM Events: Differentiated between
window
object'sload
andDOMContentLoaded
events, optimizing event handling. - Troubleshooting ES6 Modules: Addressed issues related to importing NPM packages as ES6 modules due to incorrect references, improving module management.
- Custom Scrollbar Styling: Applied custom scrollbar styling in webkit-based browsers using the
-webkit-scrollbar
pseudo-element, setting the width to 0px for a cleaner UI.
These learnings contributed significantly to the robustness and user experience of the FinTrack application.
Before cloning and running this project locally, ensure you have the following installed:
- Code Editor: An editor like VSCode for making any modifications.
- Git: Version control system to clone the repository.
- Node.js: Required for running backend services and using npm packages.
- Web Browser: A modern web browser like Chrome, Firefox, or Edge.
- Basic Understanding: Knowledge of HTML, CSS, and JavaScript.
To contribute to this project, follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch-name
. - Make your changes and commit them:
git commit -m 'Add some feature'
. - Push to the branch:
git push origin feature-branch-name
. - Submit a pull request.
- Clone the repository:
git clone https://github.com/VinayNoogler000/FinTrack.git
- Navigate to the project directory:
cd FinTrack
- Install dependencies:
npm install
- Open
index.html
in your preferred web browser.
The project structure is organized as follows:
FinTrack/
βββ assets/ # Contains images, icons, and other asset files.
βββ dist/ # Contains distribution/build files for production.
βββ src/ # Contains the main source files for the application.
β βββ index.html # The main HTML file for the application.
β βββ style.css # The main CSS file for styling the application.
β βββ app.js # The main JavaScript file for the application logic.
βββ .gitignore # Specifies files and directories to be ignored by Git.
βββ LICENSE.txt # Contains the license information for the project.
βββ README.md # The readme file you are currently reading.
βββ package.json # Contains metadata about the project and its dependencies.
I would love to hear your feedback on this project! If you have suggestions for performance improvements or ideas for new features, please feel free to open an issue on the GitHub repository.
If you find a bug or have a feature suggestion, please open an issue here with a clear description and steps to reproduce. Your input means a lot to me, as it helps me grow and become a more powerful Software Developer Engineer.
I would like to thank the following resources and tools that made this project possible:
- HTML5 for providing the structure and content of the web page.
- Tailwind CSS for the utility-first CSS framework used for styling the application.
- JavaScript for adding interactivity and functionality to the web application.
- UUID for generating unique identifiers for each transaction.
- SweetAlert for creating beautiful and customizable alert boxes.
- Skypack CDN for importing and using NPM packages directly into the browser as ES modules.
- Git for version control.
- Node.js for running backend services and using npm packages.
- VSCode for being an excellent code editor.
- DoSomeCoding YT Channel, the most important one, as He gave me and other beginners the idea of building this FinTrack web app, and also provided us with it's basic design. So, Thank you so much to, Anshu bhaiya again for giving me the idea and designs of multiple frontend project, to strengthen my fundamentals.
I am currently open to the following roles:
- π» Looking for Internships in Web Development Roles (Frontend/Backend/Full-Stack).
- π¨βπ» Seeking Full-time Software Developer Engineer (SDE) Positions
- π Specialization: Web Development (Frontend, and Full-Stack)
If you are interested in working with me or have any opportunities, please reach out to me via LinkedIn, Email, or other socials mentioned below.
As of now (latest version of this README file), I'm building Projects using Web Devlopement technologies to strengthen my fundamentals, in both Frontend & Backend, thriving to become a Full-Stack Web Developer, while learning Backend Web Development.
This project/website is my 8th self-made Frontend project (previous one was QR-Code Generator), which was made to strengthen my Frontend Web Development Skills. Also, I've planned to make this a Full-Stack Web App.
In Frontend Web Development, as of now, two more projects are left "Password Generator" and "Mobile Navigation Menu" (means, total 10 projects) to master or specialize in JavaScript.
After, that I will be building atleast 3-5 major Projects using React.js framework with Redux.js library, while learning Backend Web Development.
At last, after Completing Frontend Development Projects, and Learning Backend Development, I'll be making atleast 3 Major Full-Stack Projects, using MERN tech-stack.
This project is licensed under the MIT License.
Vinay Tambey
- LinkedIn: Vinay Tambey
- Email: Send Email to Vinay
- Twitter/X: @VinayNoogler000
- GitHub: @VinayNoogler000
For any queries or suggestions, feel free to reach out through above mentioned links.
This project is, currently, not in development by the Owner, but we're always looking to add new features and improvements!
Give a βοΈ if this project helped you!
Made with β€οΈ by Vinay Tambey