{"id":17930955,"url":"https://github.com/utkarshahuja2003/auth","last_synced_at":"2026-04-15T05:32:04.678Z","repository":{"id":257970392,"uuid":"873198648","full_name":"UtkarshAhuja2003/auth","owner":"UtkarshAhuja2003","description":"Authentication system using Next.js, Nodejs, TypeScript and GraphQL","archived":false,"fork":false,"pushed_at":"2024-10-26T20:37:36.000Z","size":190,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T23:45:45.488Z","etag":null,"topics":["apollo","docker","graphql","jwt","nextjs","nginx","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UtkarshAhuja2003.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-10-15T19:01:03.000Z","updated_at":"2024-10-26T20:38:46.000Z","dependencies_parsed_at":"2024-12-16T06:42:38.360Z","dependency_job_id":"b9c591c0-9240-43a2-a630-462735e73d22","html_url":"https://github.com/UtkarshAhuja2003/auth","commit_stats":null,"previous_names":["utkarshahuja2003/auth"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UtkarshAhuja2003%2Fauth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UtkarshAhuja2003%2Fauth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UtkarshAhuja2003%2Fauth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UtkarshAhuja2003%2Fauth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UtkarshAhuja2003","download_url":"https://codeload.github.com/UtkarshAhuja2003/auth/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246982618,"owners_count":20864134,"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":["apollo","docker","graphql","jwt","nextjs","nginx","nodejs","typescript"],"created_at":"2024-10-28T21:18:47.071Z","updated_at":"2026-04-15T05:32:04.636Z","avatar_url":"https://github.com/UtkarshAhuja2003.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Auth System\n\nA scalable authentication system using Next.js, Nodejs, TypeScript, GraphQL, JWT, MongoDB, and Docker, complete with email verification, password reset, and CI/CD integration.\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/new/?autostart=false#https://github.com/UtkarshAhuja2003/auth)\n\n![example workflow](https://github.com/UtkarshAhuja2003/auth/actions/workflows/docker-image.yml/badge.svg)\n[![License](https://img.shields.io/github/license/UtkarshAhuja2003/auth)](LICENSE)\n\n## Table of Contents\n\n- [Features](#features)\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Project Structure](#project-structure)\n- [Tech Stack](#tech-stack)\n- [Key Dependencies](#key-dependencies)\n- [Screenshots](#screenshots)\n- [Demo](#demo)\n- [Contributing](#contributing)\n- [License](#license)\n## Features\n\n- **User Registration**: Register new users with email verification.\n- **Login**: Secure login process with JWT.\n- **Forgot Password**: Recover access to account if user they forget their password.\n- **Email Verification**: Verify user email addresses during registration to enhance security and prevent fake accounts.\n- **Profile Management**: Enable users to view and update their profile information.\n- **Password Reset**: Allow users to easily reset their passwords.\n- **JWT Authentication**: Use JSON Web Tokens for secure authentication, including support for access and refresh tokens.\n\n\n## Prerequisites\n\n- [Docker](https://www.docker.com/)\n- Node.js v18+\n- Git\n## Installation\n\n1. Clone the repository:  \n   ```bash\n   git clone https://github.com/UtkarshAhuja2003/auth.git\n   cd auth\n   ```\n\n2. Create environment files:  \n   ```bash\n   cp client/.env.sample client/.env\n   cp users/.env.sample users/.env\n    ```\n\n3. Start the services using Docker Compose:  \n   ```bash\n   docker-compose up --build -d\n   ```\n\n## Usage\n\nAfter starting, navigate to http://localhost/user/register to access the client. APIs are accessible at http://localhost/users for the users microservice.\n\nFor local development, refer to the individual READMEs in each service directory:\n\n- [Client README](./client/README.md) - Next.js frontend setup and usage instructions.\n- [Users Service README](./users/README.md) - Backend API setup and documentation for user management.\n\nEach README provides step-by-step instructions for environment configuration, running the service locally, and troubleshooting common issues.\n\n## Project Structure\n\n   ```bash\n   auth/\n    ├── .github/workflows     # GitHub Actions CI/CD\n    ├── client                # Next.js client with authentication flows\n    ├── proxy                 # Nginx reverse proxy configurations\n    ├── users                 # Backend microservice for user management\n    ├── docker-compose.yml\n    ├── gitpod.yml\n    ├── LICENSE\n    └── README.md\n   ```\n## Tech Stack\n\n- **Frontend**: Next.js, TypeScript, TailwindCSS\n- **Backend**: Node.js, GraphQL, JWT, MongoDB\n- **Infrastructure**: Docker, Docker Compose, Nginx\n- **CI/CD**: GitHub Actions\n\n\n## Key Dependencies\n\n- `next`, `react`\n- `express`, `graphql`, `@apollo/server`, `jsonwebtoken`\n- `mongoose`, `bcrypt`, `nodemailer`\n## Screenshots\n\n![image](https://github.com/user-attachments/assets/9e777207-9238-46f2-bd45-117d813e007d)\n\n![image](https://github.com/user-attachments/assets/f5947893-fc67-4546-9c2c-aa7dc9b631a3)\n![image](https://github.com/user-attachments/assets/04134933-c472-4a7f-a15b-7c790e164f6b)\n![image](https://github.com/user-attachments/assets/cfcc9a04-de51-4bd2-ac57-460adfc25571)\n\n## Demo\n[![Watch the demo](https://cdn.loom.com/sessions/thumbnails/1b9861585d8c4049b0b028c6ba903c83-ab81bd6c4d077106-full-play.gif)](https://www.loom.com/share/1b9861585d8c4049b0b028c6ba903c83?sid=aec90532-3477-4847-8839-cf1e8243e498)\n\n## Contributing\n\n1. **Fork the repository**  \n2. **Create your branch:**  \n   `git checkout -b feature/YourFeature`\n3. **Commit your changes:**  \n   `git commit -m 'Add YourFeature'`\n4. **Push to the branch:**  \n   `git push origin feature/YourFeature`\n5. **Open a pull request**\n\n\n## License\n\nThis project is licensed under the [MIT](https://choosealicense.com/licenses/mit/) License.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futkarshahuja2003%2Fauth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Futkarshahuja2003%2Fauth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futkarshahuja2003%2Fauth/lists"}