{"id":22752841,"url":"https://github.com/wastech/kt-test","last_synced_at":"2026-04-15T10:37:55.780Z","repository":{"id":193982865,"uuid":"689179901","full_name":"wastech/KT-test","owner":"wastech","description":"The Wallet Transaction Management System is a robust and secure web application built with NestJS, a powerful TypeScript framework for building scalable and efficient server-side applications","archived":false,"fork":false,"pushed_at":"2023-09-11T07:46:52.000Z","size":420,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-05T09:24:31.156Z","etag":null,"topics":["javascript","jwt-token","mongodb","mongoose","nestjs","nestjs-backend","nodejs","render","typscript"],"latest_commit_sha":null,"homepage":"https://kt-test.onrender.com/api-docs","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/wastech.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}},"created_at":"2023-09-09T02:34:28.000Z","updated_at":"2024-05-23T22:33:50.000Z","dependencies_parsed_at":"2023-09-11T04:50:10.280Z","dependency_job_id":null,"html_url":"https://github.com/wastech/KT-test","commit_stats":null,"previous_names":["wastech/kt-test"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wastech%2FKT-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wastech%2FKT-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wastech%2FKT-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wastech%2FKT-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wastech","download_url":"https://codeload.github.com/wastech/KT-test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246285817,"owners_count":20752958,"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":["javascript","jwt-token","mongodb","mongoose","nestjs","nestjs-backend","nodejs","render","typscript"],"created_at":"2024-12-11T06:07:53.898Z","updated_at":"2026-04-15T10:37:50.757Z","avatar_url":"https://github.com/wastech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wallet Transaction Management System\n\n\nThe Wallet Transaction Management System is a robust and secure web application built with NestJS, a powerful TypeScript framework for building scalable and efficient server-side applications. This system provides users with a convenient way to manage their digital wallet transactions, ensuring secure money transfers between users while maintaining detailed transaction logs.\n\n## Features\n\n- **User Authentication:** Secure user registration and login system with password hashing.\n- **Transaction Creation:** Users can initiate transactions by providing recipient details, amount, PIN, and OTP verification.\n- **Transaction Logs:** Detailed transaction logs with sender and receiver information, timestamps, and transaction types (sent or received).\n- **PIN Verification:** Transactions require PIN verification for added security.\n- **Swagger Documentation:** API endpoints are documented using Swagger UI for easy testing and integration.\n- **Database Integration:** Utilizes MongoDB for efficient and scalable data storage.\n- **Authorization and Authentication:** Role-based access control ensures only authorized users can access certain features.\n\n## Database Schema\n\nThe Wallet API uses a MongoDB database with two main collections to store user and transaction data.\n\n### Users\n\nThe `users` collection stores user profiles and related information.\n### Transactions\n\nThe `transactions` collection stores transaction records between users.pp\n\n### Database Schema Diagram\n\n![P2P-Transaction](https://github.com/wastech/KT-test/assets/56930241/cae4120c-c2b7-4bde-a948-15eda7f8a7e6)\n\nThe diagram above provides a visual representation of the database schema, illustrating the relationships between the `users` and `transactions` collections.\n\n### Stack\n- [Node.js](https://nodejs.org/en)\n- [Nest.js](https://nestjs.com/)\n- [Express.js](https://expressjs.com/)\n- [MongoDB](https://www.mongodb.com/)\n- [Mongoose](https://mongoosejs.com/)\n- [JWT](https://jwt.io/)\n\n WTMS API is built using Node.js, Express.js and Nest.js, with MongoDB as the database. I'm using the Mongoose library to interact with the database, and JWT for authentication.\n\n\n## Swagger API Documentation\n\nSwagger is a powerful tool that generates interactive API documentation, making it easier for developers to understand and interact with your API endpoints. You can access the Swagger documentation for this Wallet API by visiting the following URL:\n\n[Swagger API Documentation](https://kt-test.onrender.com/api-docs#)\n\n\n\n\n## Getting Started\n\n### Prerequisites\n\nBefore you begin, ensure you have met the following requirements:\n\n- Node.js and npm installed on your development machine.\n- MongoDB database set up and running.\n- Clone this repository to your local machine\n  \n```bash\ngit@github.com:wastech/KT-test.git\n```\n - Navigate to the project directory:\n\n\n - Run npm install to install the dependencies.\n\n```bash\nnpm install\n```\n - Create a .env file in the root directory and add the following variables\n\n```bash \nPORT=\u003cport number\u003e\nMONGODB_URI_LOCAL=\u003cMongoDB URI\u003e\nJWT_SECRET=\u003cJWT secret key\u003e\nJWT_EXPIRING_DATE=\u003cJWT expiring date\u003e\n```\n- Run npm start to start the server.\n\n```bash\nnpm run start:dev\n\n```\n\nThe API will be available at http://localhost:3000. You can test the API endpoints using a tool like Postman or curl.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwastech%2Fkt-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwastech%2Fkt-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwastech%2Fkt-test/lists"}