IOU (I owe you) is a web-app that allows users to keep track of debts they owe to friends or debts friends owe to them. The app is designed to be simple and easy to use, with a focus on user experience.
This ASP.NET web-app is built using the MVC design pattern, and uses Entity Framework Core to interact with a SQL Server database. Simply build in a docker container for easy testing and use.
It implements SMTP email sending and QR Generation using QR-Code-Generator.coms API.
The design of the app is build on Bootstrap and created for a clean and simple user experience.
This project is deployed as a docker container including a MySQL container, so no external database setup is needed. You can simply clone this repository, build the docker containers and run them (see below).
Most of the app runs without the API keys. But without the SMTP settings, the app will not be able to send emails and thererfore a registration will not be possible.
To add the SMTP settings and the QR-Code API token, you need to adjust the docker-compose.yml file.
environment:
- QR-CODE-API-KEY=yourqrcodekey
- SMTPHOST=yourhostname
- SMTPPORT=yourport
- SMTPUSERNAME=yourusername
- SMTPPASSWORD=yourpassword
- FROMMAILADDRESS=yourmailaddress
Enter the API key from QR-Code-Generator.com and your SMTP settings right in there and build the docker container.
git clone https://github.com/dermrvn-code/IOweYou
cd IOweYou
docker-compose build
docker-compose up
The app should now be running on localhost:5000.
The app is designed straight forward. After starting the app, you can register a new user. For testing and demonstration purposes, you can use one the following credentials:
isd_user
isdpassword
second_isd_user
isdpassword2
After logging in you have an overview over all your balances and transactions. In the top right bar you can search for other users (like the second user above) and add a transaction of lets say 2 coffees.
If you login as the second user, you will see the transaction and the balance of the first user as a positive value. You can then resolve this transaction and waive the debt.
Over the account tab you can adjust your profile and also see your accounts QR code. This QR code can be scanned by other users to send you something.
![Dashboard](https://private-user-images.githubusercontent.com/32267352/404250866-c1117b05-185b-494a-9f09-13cf7196e122.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDcxMjYsIm5iZiI6MTczODk0NjgyNiwicGF0aCI6Ii8zMjI2NzM1Mi80MDQyNTA4NjYtYzExMTdiMDUtMTg1Yi00OTRhLTlmMDktMTNjZjcxOTZlMTIyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE2NDcwNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMwZTBmMzY2MTlhYzMzM2M0MjI2NGFmMmJkZGU5MmVjNDQzYzM3NDY2NWY4MGEwMDcwMzEzYzAyN2ZlMDkzMmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5junOtH4OnaoCkU3jlP4rP6kqWwejiFlvlglxYjbG0I)
Dashboard
![Send](https://private-user-images.githubusercontent.com/32267352/404250869-9ac40864-3e78-4118-9d84-d35861eb46cf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDcxMjYsIm5iZiI6MTczODk0NjgyNiwicGF0aCI6Ii8zMjI2NzM1Mi80MDQyNTA4NjktOWFjNDA4NjQtM2U3OC00MTE4LTlkODQtZDM1ODYxZWI0NmNmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE2NDcwNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZhODI0NjgxNzE1OTU3NzZjMzNmMDU4OWQxMGY0Yzk2ZTkzNDA0YjNhYmE3ZDY5NGRhODUyNjEzNDkzMzZjZjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ykcp2RLgM_ncRaWvC9rNf1hZyySXVXdVuNMlIHBIk7k)
Sending Page
![Transactions](https://private-user-images.githubusercontent.com/32267352/404250871-3048b021-ec8e-4df7-a601-b1d4e52c40eb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDcxMjYsIm5iZiI6MTczODk0NjgyNiwicGF0aCI6Ii8zMjI2NzM1Mi80MDQyNTA4NzEtMzA0OGIwMjEtZWM4ZS00ZGY3LWE2MDEtYjFkNGU1MmM0MGViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE2NDcwNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA0ZGM1MzZkNjRlZDIzZGZkYjU4NTRkZjQ2YjllYTI3ZWNlZDM1MGE5M2RiYzEwY2E4YmFlNDE4YWI3YmU1ZmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.jr_emvjTNrsa_HaObqUccvpphPw7ogQfvs0ohba0wVk)
Transactions Page
![Account](https://private-user-images.githubusercontent.com/32267352/404250876-e0c5a5d2-9e3f-4ae5-8ab8-a0f1204eb4e1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NDcxMjYsIm5iZiI6MTczODk0NjgyNiwicGF0aCI6Ii8zMjI2NzM1Mi80MDQyNTA4NzYtZTBjNWE1ZDItOWUzZi00YWU1LThhYjgtYTBmMTIwNGViNGUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE2NDcwNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg0MWNlZDY1MGVjOGE4N2Y2MTNiMDEzMjA1MGU4YTBiYjlmYzllYTZmMDMwMmE1YzMzNWIxMTk0NGI0YWFjYjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Gx1A5k3v3Kmp9jNBYhBq9gI2tIffh8jr1kyLziR2Dx0)
Account Page (with QR-Code)