Wellets is a financial management website that helps users to manage their money placed in multiple portfolios. It was developed with a focus on users engaged in the crypto world. These users usually have money on their bank accounts, exchanges, blockchain wallets and stuff like that. As there are a lots of places to put their money, it is easy to gets confused with their own money. To avoid that, Wellets currently provide wallet and currency management features to help users control their money with more accurately.
ADVICE: Wellets does not have any type of integration with bank accounts or blockchain wallets, all management is done manually. The benefit of using this is the user experience and practicality, but the user needs to specify their transfers and transactions to see the power of the application.
This repository contains the code related to Wellets Back-end. If you want to see the front-end repository, please check Wellets Front-end.
- Sign up
- Sign in
- Sign out
- Wallets CRUD
- View sum of balances of all wallets on a specific currency
- Create transactions and transfers
- View transaction and transfer history
- Custom currencies CRUD
- And more!
If Wellets currently does not have a certain feature you think it is awesome, be sure to check out the roadmap to see if this is already planned for the future. Otherwise, you can contact me by any contact method listed in my Github Profile to send your ideas.
| METHOD | PATH | SHORT DESCRIPTION |
|---|---|---|
| GET | /currencies | Index native and user custom currencies |
| PUT | /currencies/:id | Set preference for the currency |
| GET | /currencies/rate | Show currency rate based on other currency |
| GET | /currencies/custom | Index user custom currencies |
| POST | /currencies/custom | Create a custom currency |
| PUT | /currencies/custom/:id | Update a custom currency |
| DELETE | /currencies/custom/:id | Delete a custom currency |
| GET | /transactions | Index wallet transactions |
| POST | /transactions | Create a wallet transaction |
| GET | /transfers | Index wallet transfers |
| POST | /transfers | Create a transfer between two wallets |
| POST | /users | User sign up |
| POST | /users/sessions | User sign in |
| DELETE | /users/sessions | User sign out |
| GET | /wallets | Index user wallets |
| POST | /wallets | Create a wallet |
| DELETE | /wallets | Delete a wallet |
| GET | /wallets/balance | Show wallet balance based on other currency |
| GET | /wallets/total-balance | Show the sum of wallets balances |
-
Install project dependencies:
npm installoryarn install -
Copy
docker-compose.example.ymllocated at the root folder to a newdocker-compose.ymlfile and fill it with the credentials that you want to create the containers. -
Set up docker containers:
docker-compose up -d -
Copy
ormconfig.example.jsonlocated at the root folder to a newormconfig.jsonfile and fill it with the credentials that you have set up when creating the containers. -
If you make sure that your containers were successfully created, run TypeORM migrations:
npm run run-migrationsoryarn run-migrations -
Copy
.env.examplelocated at the root folder to a new.envfile and fill it with the credentials that you have set up on the past steps. -
Run project:
npm run devoryarn dev
-
Generate
buildfolder:npm run buildoryarn build -
Change your
ormconfig.jsonfile to use the files located on thedistfolder:Just replace
srcbydistand.tsto.json theormconfig.jsonentries. -
Run project:
pm2 reload ecosystem.config.jsMay you will need to install
pm2globally withnpm install -g pm2oryarn global add pm2
If you want to contribute with me to improve it and add new features, you can contact me by any contact method listed in my Github Profile.
MIT © Daniel Oliveira