A server-side web app that allows the user to upload a list of financial transactions, giving feedback over potential frauds and illicit movements.
🪧 Vitrine.Dev | |
---|---|
✨ Nome | MoneyAnalyzer |
🏷️ Tecnologias |
The website was made using a modified free template (template.zip), that is inside the project folder. It has a few key functionalities, such as:
-
Login/SignUp system, with encrypted passwords.
-
Suport to CSV files with transactions, that are stored in your account.
-
A report over suspicious transactions, showing separating them from others.
To register into the app, the user will need offer only two things: a username and his email. After the appropriate verifications are made, a six-digit password encrypted with the BCrypt algorithm is sent to their email. The user can then use this password to enter the app.
The app won't accept any CSV file. The file (that should be generated by a third-party) must contain eight key values:
- The bank from which the transaction was made
- The agency from which the transaction was made
- The account number from which the transaction was made
- The bank for which the transaction was
- The account for which the transaction was
- The account number for which the transaction was
- The value of the transfer
- The date and hour the transfer was made
It'll be rejected any transactions that don't have one of these info. Besides that, the app will only read transactions from the same day at a time, therefore, any other records of transactions that ocurred in other date besides the first one in the CSV file will be ignored. In summary, the users should import their daily transactions at a time instead of grouping them all together and sending a bunch of them.
The user will have acess to all transactions imported into the app, with an additional button showing all the details.
Right now, the transactions labeled as "suspicious" are the ones with value over 10000. There are plans to change this, however, adding a more "detailed" analysis. I'm looking to build a ML model capable of analysing such values and identyfing potential suspicious transactions. This is a work in progress, though, and therefore some time will be needed for this.
If you wish to download the files and see the project working by yourself, a few steps are going to be needed. You need to make sure that you have Python installed, such as some few libraries, that will be listed down below.
# Libraries used in the project
Django==4.0.5
psycopg2-binary==2.9.3
bcrypt==3.2.2
It's of major importance that you only download such libraries after inside the virtual environment. To enter the venv, use the code
source "path-to-venv/venv/bin/activate"
. After that, you can simply install the libraries using commands such aspip install django==4.0.5
.
With the libraries installed you will also need two other things. The first one is PostgreSQL, and the second one is to modify, in MoneyAnalyzer/settings.py the database configurations to fit your created database. The final setting should be something close to this.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'DatabaseName',
'USER': 'UserName',
'PASSWORD': 'UserPassword',
'HOST': 'localhost'
}
}
After the database is configured, use the commands python manage.py makemigrations
and python manage.py migrate
to create the needed tables
in your database.
With this out of the way, you can build the server with python manage.py runserver
. The app will be available in http://127.0.0.1:8000.
In case of any suggestions, opinions or criticism, please, contact me. I'm looking forward to keeping improving always, and feedback is always precious.