This is an application which contains a connected flask backend to a react frontend. It shows the personal user perspective of our service, i.e. managing personal expenses and sending money requests/transfers.
- In backend dir, run
python3 -m venv env
- activate:
source env/bin/activate
- Run
pip install -r requirements.txt
to install necessary Python requirements. - Return to the base directory and run:
npm install
before going to the Run backend and Run web app steps below.
flask run
(preferred), ornpm run start-backend
, orpython3 server.py
directly- Open http://localhost:5000 to view it in the browser.
npm start
- Open http://localhost:3000 to view it in the browser.
This client shows a subset of our EasyMoney service, i.e. it can be used to build a personal money management tool that serves just like online banking, c2c money service, for example. More features can be added to emphasize the social interactions
- Authentication: login/signup/logout are available in this client. It's the First step in user workflow.
- Transfer: transfers are like one-way payment from the user to someone else. Transactions are executed immediately. No actions taken on the receiver side.
- Request: requests are pending once sent, and receiver needs to take actions, i.e. accept/decline, to make the transaction or decline the request, respectively.
- User Profile: a simple profile page for viewing user profile details, making deposit/withdrawing money.
- Feed: display all the transactions in which the current user is involved.
We use manual testing to demonstrate the workflow between this client and our service.
- First follow How to build and run locally to set up the client and then visit http://localhost:3000
- Authentication Workflow:
- Click on the login button in the nav bar. The auth feature uses our auth service to register/login.
- If you're new to the website, click the signup link at the bottom, and you can fill in information to register.
- If you've already signed up, login with exisitng credentials.
- Deposite/Withdraw Workflow:
- Click on the profile button in the nav bar.
- Fill in the amount of money you want to deposit to/withdraw from your account, and then hit the button.
- You should see your balance immediately changed in the profile page.
- Money Transfer Workflow
- After logging in, click on the transfer button in the nav bar
- Use the search bar to find the person you want to transfer money from, type in other details like amount, descriptions, and category, and then hit make transfer.
- If transfer is successfully completed, a successful banner will pop up; otherwise, a failed notice with specific error message will pop up.
- Money Request Workflow
- Fill in the request similar to the steps in Money Transfer Workflow
- Now there's a new section which contains cards of items, and each item is a pending request.
- If you send the request, there will be no accept/decline button on your side. You can just view the pending requests sent BY YOU.
- If you receive the request, you can view the pending requests sending TO YOU. There will be accept/decline button for you to accept or decline the request, and balance will be updated accordingly as soon as you hit either button.
- Feed Workflow:
- Click on the feed button in the nav bar.
- You should see your transactions displayed in feed.
- Failed to activate python env?
- Try use conda instead. Run
conda deactivate
, thenconda activate
, thenconda install xx
to install missing dependencies.
- Try use conda instead. Run
- Some requirements are missing?
- Try use conda, or manually install the missing packages.
- Cannot run
flask run
?- You should configure by
export FLASK_APP = server.py
and then build.
- You should configure by