This is a full-stack application that simulates an ATM system. It has the following functionality:
- User registration
- User login
- View balance and transactions
- Deposit money
- Withdraw money
The frontend is made using React Native + Expo, and the backend is made with ASP.NET with the help of the Entity Framework Core.
The following instructions will explain how to setup the app (on Android) and the backend (using Docker.)
Before starting, make sure you have Docker and Docker Compose installed.
First, clone the repo:
git clone https://github.com/ert112358/ATM_ProjectThen, navigate to the directory:
cd ATM_Project/ATM_BackEnd/ATM_BackEndAnd finally, run the container:
docker compose up -dBefore starting, make sure you have Node.JS installed on your PC and Expo Go installed on your mobile device.
First, clone the repo:
git clone https://github.com/ert112358/ATM_ProjectThen, navigate to the directory:
cd ATM_Project/ATM_FrontEndAnd finally, run the development server:
npx expo startAfter running the container, the API will be exposed on port 5001. Here's a table explaining the API calls and what they do:
hostname:5001/api/register?username=USER&password=PASSWORDThis API call will add the supplied user to the database, if it doesn't already exist with the same name and only if the password is strong enough.hostname:5001/api/login?username=USER&password=PASSWORDThis API call will check if the supplied username and password are valid and if they are, it will respond with the access token (32 bytes long, randomly generated) associated with that user.hostname:5001/api/viewbalance?token=TOKENThis API call return the username, balance and full list of transactions that the user made.hostname:5001/api/withdraw?token=TOKEN&amount=NUMThis API call will subtract the specified amount of money from the user's balance.hostname:5001/api/deposit?token=TOKEN&amount=NUMThis API call will add the specified amount of money to the user's balance.hostname:5001/api/changepassword?username=USERNAME&oldpassword=OLDPW&newpassword=NEWPWThis API call will change the user's password. Like theregisterfunction, it will check if the password is strong enough, and if the change is successful, it sends a new access token to the caller.