An open API service indexing awesome lists of open source software.

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

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.

![image](https://github.com/droffilc1/spendless/assets/97587370/dfc4d75c-9f34-49e4-a6ad-3a21f19c0c3a)

## 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.