{"id":22533533,"url":"https://github.com/vectormike/lite-bank","last_synced_at":"2025-07-09T13:08:07.173Z","repository":{"id":101868562,"uuid":"468560224","full_name":"Vectormike/lite-bank","owner":"Vectormike","description":"A basic digital bank","archived":false,"fork":false,"pushed_at":"2022-03-11T01:31:00.000Z","size":39820,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T05:43:08.615Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vectormike.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-11T00:56:27.000Z","updated_at":"2023-03-17T12:55:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"202ec5bb-919a-439b-ad0d-567ded6057c3","html_url":"https://github.com/Vectormike/lite-bank","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Vectormike/lite-bank","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vectormike%2Flite-bank","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vectormike%2Flite-bank/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vectormike%2Flite-bank/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vectormike%2Flite-bank/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vectormike","download_url":"https://codeload.github.com/Vectormike/lite-bank/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vectormike%2Flite-bank/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264465641,"owners_count":23612576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-07T09:08:37.872Z","updated_at":"2025-07-09T13:08:07.141Z","avatar_url":"https://github.com/Vectormike.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lendsqr API\n\nThis application allows you to create an account while being able to deposit, transfer and withdraw from it.\n\n## Manual Installation\n\nIf you would still prefer to do the installation manually, follow these steps:\n\nClone the repo:\n\n```bash\ngit clone --depth 1 https://github.com/Vectormike/lite-bank\ncd lite-bank\n\n```\n\nInstall the dependencies:\n\n```bash\nnpm install\n```\n\nSet the environment variables:\n\n```bash\ncp .env.example .env\n\n# open .env and modify the environment variables (if needed)\n```\n\n### Commands\n\nRun the migration:\n\n```\nknex migrate:latest\n```\n\nStart the server in development\"\n\n```\nnpm run dev\n```\n\nRun in production\n\n```\nnpm run serve\n```\n\nStart up the containers\n\n```\ndocker-compose up -d on the root directory of the project\n```\n\nRun Migration\n\n```\ndocker exec -t -i app knex migrate:latest\n```\n\n### Database schema\n\n![Screenshot](lendsqr.png)\n\n## API Documentation\n\nTo view the list of available APIs and their specifications, vist [Postman API documentation](https://documenter.getpostman.com/view/5622145/UVsHT7j6)\n\n### API Endpoints\n\nList of available routes:\n\n**Auth routes**:\\\n`POST /api/auth/register` - register\\\n`POST /api/auth/login` - login\\\n\n**Account routes**:\\\n`POST /api/account/deposit` - fund\\\n`POST /api/account/transfer` - transfer\\\n`POST /api/account/withdraw` - withdraw\\\n\n## Features\n\n- **MySQL database**: [MySQL](https://www.mysql.com) object data modeling using [Knex](https://knex.com)\n- **Authentication and authorization**: using [passport](http://www.passportjs.org)\n- **Validation**: request data validation using [Joi](https://github.com/hapijs/joi)\n- **Logging**: using [winston](https://github.com/winstonjs/winston) and [morgan](https://github.com/expressjs/morgan)\n- **Testing**: unit and integration tests using [Jest](https://jestjs.io)\n- **Dependency management**: with [NPM](https://npm.com)\n- **Environment variables**: using [dotenv](https://github.com/motdotla/dotenv)\n- **Compression**: gzip compression with [compression](https://github.com/expressjs/compression)\n- **Docker support**\n- **Git hooks**: with [husky](https://github.com/typicode/husky) and [lint-staged](https://github.com/okonet/lint-staged)\n- **Linting**: with [ESLint](https://eslint.org) and [Prettier](https://prettier.io)\n- **Editor config**: consistent editor configuration using [EditorConfig](https://editorconfig.org)\n\n## Environment Variables\n\nThe environment variables can be found and modified in the `.env` file. They come with these default values:\n\n```bash\n# Port number\nNODE_ENV=development\nPORT=8000\n\nBASE_URL_DEV=http://localhost:8000\nBCRYPT_SALT=12\nREFRESH_TOKEN_SECRET=hththjjkekdkkkdkd\nJWT_AUTH_SECRET=kdkdkkdkk\nELK_VERSION=7.5.1\n\nDB_NAME=lendsqr\nTEST_DB_NAME=lendsqr_test\nDB_HOST=127.0.0.1\nDB_PORT=8889\nDB_USERNAME=root\nDB_PASSWORD=root\n```\n\n## Project Structure\n\n```\nsrc\\\n |--components\\     # Modules for each services\n |--config\\         # Database, jwt and redis configuration\n |--database\\       # Migrations\n |--errors\\         # Error handlers\n |--helpers\\        # Helpers\n |--middlewares\\    # Custom express middleware\n |--shared\\         # Utility classes and functions\n |--tests\\          # Unit tests\n |--app.js          # Express app\n |--server.js        # App entry point\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvectormike%2Flite-bank","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvectormike%2Flite-bank","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvectormike%2Flite-bank/lists"}