https://github.com/droffilc1/spendless
Spendless is a web application for users to track their expenses
https://github.com/droffilc1/spendless
javascript mysql python react sql sqlalchemy tailwindcss ubuntu
Last synced: 2 months ago
JSON representation
Spendless is a web application for users to track their expenses
- Host: GitHub
- URL: https://github.com/droffilc1/spendless
- Owner: droffilc1
- License: mit
- Created: 2024-03-18T04:51:21.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-05T15:04:15.000Z (about 2 years ago)
- Last Synced: 2025-01-28T01:45:36.877Z (over 1 year ago)
- Topics: javascript, mysql, python, react, sql, sqlalchemy, tailwindcss, ubuntu
- Language: Python
- Homepage: https://spendless.ink
- Size: 1.67 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
# SpendLess
## Overview
SpendLess is a web application for users to track their expenses. The application consists of a backend API built with Flask, which interacts with a MySQL database using SQLAlchemy ORM, and a frontend user interface developed with React.

## Live Demo
For the link to the live demo, [Click here](https://spendless.ink) 👈
[Blog post](https://cliffordmapesa.hashnode.dev/how-spendless-came-to-life)\
[Project slides](https://docs.google.com/presentation/d/13kdNIZpNa1aWhp_JmAzDbzenE41hELvo933tf162sPQ/edit?usp=sharing)
## Technology Stack
### Frontend:
- React (JavaScript library)
- Tailwind css
### Backend:
- Flask (Microframework for Python)
### DevOps:
- Digital Ocean server for hosting
- Domain for online presence
- Nginx web server for handling HTTP requests
- Gunicorn application server for serving Flask application
- Certbot for SSL encryption
- UFW firewall for security
### Database:
- MYSQL
## Features
- Register a new user.
- Login a user
- Add an expense
- Add a category
- View expenses
- Overview of a user's spending
- Update expense
- Update category
- Track expenses
## Motivation
This project was part of ALX Software Engineering program. I chose this project so as to get a deeper understanding of how APIs work and how to consume them on the frontend
## Getting Started
To get a local copy up and running you just need to follow the following steps in your terminal;
```
git clone "url"
```
where "url" (without the quotation marks) is the url to this repository.
For example:
```
git clone https://github.com/droffilc1/spendless.git
```
Here you're copying the contents of the spendless repository on GitHub to your computer.
Change to the repository directory on your computer (if you are not already there):
```
cd spendless
```
## Reference
[How To Secure Nginx with Let's Encrypt on Ubuntu](https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-22-04#step-4-obtaining-an-ssl-certificate)\
[SSL Server Test](https://www.ssllabs.com/ssltest/analyze)\
[How To Install Nginx on Ubuntu 22.04](https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-22-04#step-6-getting-familiar-with-important-nginx-files-and-directories)\
[How To Deploy a React Application with Nginx on Ubuntu](https://www.digitalocean.com/community/tutorials/deploy-react-application-with-nginx-on-ubuntu)\
[Skipping larger chunks while running "Npm run build"](https://stackoverflow.com/questions/69260715/skipping-larger-chunks-while-running-npm-run-build)\
[Initial Server Setup with Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04)\
[SECTION 3 HELP](https://docs.google.com/document/d/1KtK5lm2cTzs6eudFUEtBCo8Zdt3Pl-VKhlald4NzNKo/edit)\
[Alembic](https://alembic.sqlalchemy.org/en/latest/tutorial.html)\
[How To Serve Flask Applications with Gunicorn and Nginx on Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-20-04)\
[ERROR 1698 (28000): Access denied for user 'root'@'localhost'](https://stackoverflow.com/questions/56213019/how-to-add-a-favicon-to-a-next-js-static-site)
## Authors
[Clifford Mapesa](https://github.com/droffilc1)
## 🤝 Ways To Contribute
[](https://github.com/droffilc1/spendless#-ways-to-contribute)
Contributions, issues, and feature requests are welcome!
Feel free to check the [issues page](https://github.com/droffilc1/spendless/issues).
## Show your support
[](https://github.com/droffilc1/spendless#show-your-support)
Give a ⭐️ if you like this project!
## 📝 License
[](https://github.com/droffilc1/spendless#-license)
This project is [MIT](https://github.com/droffilc1/spendless/blob/main/LICENSE) licensed.