{"id":15170757,"url":"https://github.com/arthurlbo/user-management-api","last_synced_at":"2026-01-30T22:11:29.618Z","repository":{"id":245774570,"uuid":"773014038","full_name":"arthurlbo/user-management-api","owner":"arthurlbo","description":"💻 An simple API for user management and authentication, built with NestJS, Docker, Prisma, and PostgreSQL .","archived":false,"fork":false,"pushed_at":"2024-06-24T21:27:09.000Z","size":726,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-10T14:49:27.289Z","etag":null,"topics":["bcrypt","commitlint","docker","docker-compose","dto","e2e-tests","husky","jest","jwt-authentication","mysql","nest","nestjs","nodejs","nodemailer","postgresql","prisma","pug","supertest","typeorm","typescript"],"latest_commit_sha":null,"homepage":"","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/arthurlbo.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":"2024-03-16T14:02:22.000Z","updated_at":"2024-07-25T22:48:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"5c1bbe9b-ee1a-40a7-a8f1-3783f7fa74f3","html_url":"https://github.com/arthurlbo/user-management-api","commit_stats":null,"previous_names":["arthurlbo/user-management-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arthurlbo/user-management-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthurlbo%2Fuser-management-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthurlbo%2Fuser-management-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthurlbo%2Fuser-management-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthurlbo%2Fuser-management-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arthurlbo","download_url":"https://codeload.github.com/arthurlbo/user-management-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthurlbo%2Fuser-management-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28920744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T20:25:28.696Z","status":"ssl_error","status_checked_at":"2026-01-30T20:25:13.426Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bcrypt","commitlint","docker","docker-compose","dto","e2e-tests","husky","jest","jwt-authentication","mysql","nest","nestjs","nodejs","nodemailer","postgresql","prisma","pug","supertest","typeorm","typescript"],"created_at":"2024-09-27T08:22:48.210Z","updated_at":"2026-01-30T22:11:29.601Z","avatar_url":"https://github.com/arthurlbo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Hi there! 👋\n\n\u003e The User Management API is designed to provide robust user authentication and management functionalities. This API enables users to perform essential operations such as registration, login, password recovery, etc. Additionally, it includes an admin-only CRUD for managing user accounts.\n\u003e\n\u003e The primary goal of this project was to enhance backend development skills by implementing a comprehensive user management system. This includes sophisticated authentication mechanisms and administrative capabilities to manage users effectively. The combination of NestJS, Docker, Prisma and PostgreSQL ensures a modern, scalable, and maintainable solution.\n\u003e\n\u003e Also there is a branch using TypeORM and MySQL instead Prisma and PostgreSQL, just for learning purposes. you can check it out [here](https://github.com/arthurlbo/user-management-api/tree/type-orm).\n\n## Tech Stack\n\n- [NestJS](https://nestjs.com/)\n- [NodeJS](https://nodejs.org/en)\n- [TypeScript](https://www.typescriptlang.org/)\n- [JWT](https://github.com/nestjs/jwt)\n- [bcrypt](https://www.npmjs.com/package/bcrypt)\n- [class-validator](https://www.npmjs.com/package/class-validator)\n- [class-transformer](https://www.npmjs.com/package/class-transformer)\n- [zod](https://www.npmjs.com/package/zod)\n- [NestJS Mailer](https://www.npmjs.com/package/@nestjs-modules/mailer)\n- [pug](https://pugjs.org/api/getting-started.html)\n- [Jest](https://jestjs.io/)\n- [Supertest](https://www.npmjs.com/package/supertest)\n- [dotenv-cli](https://www.npmjs.com/package/dotenv-cli)\n- [Prisma](https://www.prisma.io/)\n- [PostgreSQL](https://www.postgresql.org/)\n- [Docker](https://www.docker.com/)\n- [Eslint](https://eslint.org)\n- [Prettier](https://prettier.io)\n- [Husky](https://github.com/typicode/husky)\n- [Commitlint](https://commitlint.js.org/#/)\n\n## Key Features\n\n**User Authentication**\n\n- Registration\n- Login\n- Avatar Upload\n- Update Completely\n- Update Partially\n- Password Recovery\n\n**Admin CRUD**\n\n- Register User\n- Read All Users\n- Read User\n- Update User Completely\n- Update User Partially\n- Delete User\n\n## Getting Started\n\n\u003e **Make sure you have [Docker](https://www.docker.com/) installed on your machine.**\n\n```bash\n# Run database container\ndocker compose -f docker-compose.dev.yml up -d\n\n# Install dependencies\npnpm install\n\n# Apply migration and generate prisma client\npnpm p-mg\n\n# Start the development server\npnpm dev\n```\n\nAPI will be running  on `http://localhost:3000`\n\n## Structure\n\n```folder\n├── .husky\n└── .vscode\n└── prisma\n└── src\n    ├── auth\n    ├── common\n    ├── decorators\n    ├── env\n    ├── file\n    ├── guards\n    ├── interceptors\n    ├── prisma\n    ├── system\n    ├── templates\n    ├── test\n    ├── user\n```\n\n| Folder             | Description                                        |\n| :------------------ | :-------------------------------------------------- |\n| **.husky**         | Git hooks managed by Husky.                        |\n| **.vscode**        | VSCode settings .                                  |\n| **prisma**         | Prisma config such as schema, migrations and seed. |\n| **auth**           | Auth related files to manage user authentication.  |\n| **common**         | Reusable utilities and constants.                  |\n| **decorators**     | Custom decorators.                                 |\n| **env**            | Env related files to manage environment variables. |\n| **file**           | File related files to manage file operations.      |\n| **guards**         | Custom guards.                                     |\n| **interceptors**   | Custom interceptors.                               |\n| **prisma**         | Prisma service to interact with the database.      |\n| **system**         | System related files to manage system operations.  |\n| **templates**      | Email templates.                                   |\n| **test**           | Test related files.                                |\n| **user**           | User related files to manage user operations.      |\n\n## Custom Commands\n\n```bash\n\n# Run all tests\npnpm test:all\n\n# Run prisma generate\npnpm p-gen\n\n# Run prisma migrate\npnpm p-mg\n\n# Run prisma migrate reset\npnpm p-mg-reset\n\n# Run prisma seed\npnpm p-seed\n\n# Set environment to production\npnpm env:prod\n\n# Set environment to development\npnpm env:dev\n\n# Set environment to test\npnpm env:test\n\n# Run prisma migrate in production environment\npnpm p-mg:prod\n\n# Run prisma migrate in development environment\npnpm p-mg:dev\n\n# Run prisma migrate in test environment\npnpm p-mg:test\n\n# Run prisma migrate reset in development environment\npnpm p-mg-reset:dev\n\n# Run prisma migrate reset in test environment\npnpm p-mg-reset:test\n\n# Run prisma seed in production environment\npnpm p-seed:prod\n\n# Run prisma seed in development environment\npnpm p-seed:dev\n\n# Run prisma seed in test environment\npnpm p-seed:test\n\n# Commit staged changes\npnpm commit\n\n```\n\n\u003cp align=\"center\"\u003eMade with 🤍 by Arthur\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthurlbo%2Fuser-management-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farthurlbo%2Fuser-management-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthurlbo%2Fuser-management-api/lists"}