https://github.com/batanoffs/mini-finance/assets/111650687/d3e5ef51-4f2d-4225-a05e-6da467265a31
Mini Finance Innovations is a finance web application project. The goal is to simulate online banking by generating online virtual cards for new users, enabling account top-ups via the user's debit card, adding friends, facilitating transactions between users, and maintaining transaction history. The main focus of this project is to practice REST, React, React-router, ES6 features, CSS/CSS modules, and responsive design.
username `ivo@abv.bg` password `Minifinance123`
username `test@abv.bg` password `Minifinance123`
The project utilizes the following libraries and services:
Here are some examples of how to use this project:
To get started with this project, follow these steps:
Clone the repository
git clone https://github.com/batanoffs/mini-finance.git
Navigate to the project directory: cd your-project-directory
Install dependencies:
npm install
Start the development server:
npm start
Open your browser and go to http://localhost:3000/mini-finance/ to view the app.
Login with test credentials or register new account
The user can log in to the app with an existing account or register a new one. The registration is a multi-step process as shown below and clearly displays the user's current stage. There is validation implemented for the user's input.
Step 1 | Step 2 |
---|---|
Step 3 | Step 4 |
---|---|
Provides a central interface for managing the account, navigation, including virtual card, balance, last transactions, quick actions and buttons.
Web | Mobile |
---|---|
The dashboard contains the information about the current balance of the user for quick financial overview as well virtual card details
Provides real-time notifications for friend requests and money transactions to inform users in real-time. The notifications also display the time when the notification was created and possible actions, when the user hovers over the notification with the mouse.
Money recieved notification | Delete notification message |
---|---|
Friend request notification | Accept Friend request message |
---|---|
Money request notification | Message reject |
---|---|
Users can request money from other users in the ecosystem as long as they are in their list of friends.The form is invoked from a button located on the dashboard and allows automatic filling / Autocomplete of the field if the friend has been found.
Web | Mobile |
---|---|
Needs update
Users can change information about their account, including email, profile picture and information about credit card, as well as manage their notifications.
Provides a quick way to execute tasks such as sending money, adding friends, requesting money, and adding friends to a category of favorite
Quick actions | Add Friends and transaction buttons |
---|---|
Change | Show buttons | Delete |
---|---|---|
Users can view their transaction history, which shows the last 5 transactions
Shows all movements in the account, as well as quick buttons for sending money, loading money and searching for an amount
Here the user can view their data and perform actions towards their friends, as well as see who they are
Overview | Hover friends action buttons |
---|---|
Menu for help and frequently asked questions with search functionality (still not implemented)
AuthContext provides data of authenticated user to welcomePage component through useContext from React. Additionally exports useAuthContext()
useMessage() returns function message from Antd, which takes type and text
useForm(initialState, onLogin, onRegister) takes initial state for form, and functions to be called on login and register. Inside it there's also useValidate hook which validates input from user. Finally it returns:
useSessionStorage(key, initialValue) takes key to store in sessionStorage and initial value. Finally it returns:
useValidate(initialStatе) takes initial state which comes from useForm. Finally it returns:
baseURL stores base URL for backendless and exchangerate api
setNewGeneratedId() takes nothing. Generates random number from 0 – 100 and checks if there's already user with such id and if there is, generates new one and returns it
formatDate(date) takes date and returns formatted
showLastCardDidgits(number) takes bank card number and returns last four digits
This project is maintained by batanoffs and tested by Ivan-0101. Currently is not open to additional contributions.
It is inspired by the layout of Tooplate 2135 Mini Finance Template. Some icons are used from Julia G at www.icons8.com
This project is licensed under MIT Licence - see the LICENSE.txt file for details.