{"id":48075954,"url":"https://github.com/hasnaintypes/fullstack-auth","last_synced_at":"2026-04-06T08:01:37.213Z","repository":{"id":263250498,"uuid":"889789818","full_name":"hasnaintypes/fullstack-auth","owner":"hasnaintypes","description":"This project is a learning-focused tutorial where I will build a complete authentication system using the MERN stack (MongoDB, Express, React, and Node.js). The primary goal of this project is to understand and implement key concepts like login, logout, password recovery, and user session management.","archived":false,"fork":false,"pushed_at":"2025-07-03T00:37:37.000Z","size":128,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-04T15:28:36.278Z","etag":null,"topics":["authentication","backend","mongodb","nodejs","react","reactjs","tailwindcss"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/hasnaintypes.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-17T08:37:28.000Z","updated_at":"2026-03-22T17:15:39.000Z","dependencies_parsed_at":"2024-11-17T10:23:09.731Z","dependency_job_id":"5dc0ed41-9004-45ed-8568-aeec99d69fbc","html_url":"https://github.com/hasnaintypes/fullstack-auth","commit_stats":null,"previous_names":["nainee99/authquest","hasnaintypes/fullstack-auth"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hasnaintypes/fullstack-auth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hasnaintypes%2Ffullstack-auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hasnaintypes%2Ffullstack-auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hasnaintypes%2Ffullstack-auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hasnaintypes%2Ffullstack-auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hasnaintypes","download_url":"https://codeload.github.com/hasnaintypes/fullstack-auth/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hasnaintypes%2Ffullstack-auth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31464102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["authentication","backend","mongodb","nodejs","react","reactjs","tailwindcss"],"created_at":"2026-04-04T14:49:52.859Z","updated_at":"2026-04-06T08:01:37.208Z","avatar_url":"https://github.com/hasnaintypes.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AuthQuest\n\nWelcome to **AuthQuest**! This project is a learning-focused tutorial where I will build a complete authentication system using the **MERN stack** (MongoDB, Express, React, and Node.js). The primary goal of this project is to understand and implement key concepts like **login**, **logout**, **password recovery**, and **user session management**.\n\n## What is AuthQuest?\n\nAuthQuest is a full-stack authentication system built to help me learn and practice various authentication techniques. It covers essential features that most web applications need to manage users securely:\n\n- **User registration and login**\n- **Password recovery (Forgot password)**\n- **User session management (login/logout)**\n- **JWT (JSON Web Tokens) authentication**\n- **Password hashing and secure storage**\n- **Client-side state management for authentication**\n\nThis project will serve as a hands-on learning tool for mastering these concepts and applying them in a real-world context.\n\n## Project Structure\n\nThe project is built using the **MERN stack**, which stands for:\n\n- **MongoDB**: NoSQL database for storing user information and authentication data.\n- **Express.js**: Web framework for Node.js that handles routing and server-side logic.\n- **React.js**: Front-end framework to build the user interface and manage client-side interactions.\n- **Node.js**: JavaScript runtime for executing the server-side code.\n\n## Features\n\n- **User Authentication**: Users can register, log in, and log out.\n- **Password Reset**: Users can reset their password if they forget it by receiving an email with a reset link.\n- **JWT Token**: Uses JSON Web Tokens for secure communication between the client and server.\n- **Password Hashing**: User passwords are hashed and securely stored using bcrypt.\n\n## Backend Setup\n\n🛠️ **Backend Setup**  \n🗄️ **Database Setup**  \n🔐 **Signup Endpoint**  \n📧 **Sending Verify Account Email**  \n🔍 **Verify Email Endpoint**  \n📄 **Building a Welcome Email Template**  \n🚪 **Logout Endpoint**  \n🔑 **Login Endpoint**  \n🔄 **Forgot Password Endpoint**  \n🔁 **Reset Password Endpoint**  \n✔️ **Check Auth Endpoint**\n\n## Frontend Setup\n\n🌐 **Frontend Setup**  \n📋 **Signup Page UI**  \n🔓 **Login Page UI**  \n✅ **Email Verification Page UI**  \n📤 **Implementing Signup**  \n📧 **Implementing Email Verification**  \n🔒 **Protecting Our Routes**  \n🔑 **Implementing Login**  \n🏠 **Dashboard Page**  \n🔄 **Implementing Forgot Password**\n\n## Getting Started\n\nTo run this project locally, follow these steps:\n\n### 1. Clone the repository\n\n```bash\ngit clone https://github.com/Nainee99/AuthQuest.git\ncd AuthQuest\n```\n\n### 2. Install Dependencies\n\n- **Back-end**: Install dependencies in the backend folder.\n\n```bash\ncd server\nnpm install\n```\n\n- **Front-end**: Install dependencies in the frontend folder.\n\n```bash\ncd ../client\nnpm install\n```\n\n### 3. Set Up Environment Variables\n\nIn both the **frontend** and **backend**, create `.env` files and add the necessary environment variables (e.g., database URL, JWT secret, etc.).\n\nExample for `.env` in backend:\n\n```\nMONGO_URI=your_mongo_uri\nPORT=5000\nJWT_SECRET=your_secret_key\nNODE_ENV=development\n\nMAILTRAP_TOKEN=your_mailtrap_token\nMAILTRAP_ENDPOINT=https://send.api.mailtrap.io/\n```\n\n### 4. Run the Project\n\n- **Back-end**: Start the server.\n\n```bash\ncd server\nnpm start\n```\n\n- **Front-end**: Run the React development server.\n\n```bash\ncd client\nnpm start\n```\n\nNow you should be able to open your browser and access the application locally at `http://localhost:5173`.\n\n## Learning Goals\n\nBy the end of this project, I'll have a complete understanding of:\n\n- **Full-stack authentication**: From user registration to secure password management.\n- **Session management**: How to handle user sessions with JWTs and cookies.\n- **Handling errors**: How to handle common authentication-related errors like invalid credentials or expired tokens.\n- **Security best practices**: How to keep user data safe by hashing passwords and using HTTPS.\n\n## Contributing\n\nSince this project is intended for learning purposes, I welcome any suggestions, improvements, or contributions! If you have ideas or encounter issues, feel free to open an issue or submit a pull request.\n\n## License\n\nThis project is open-source and available under the [MIT License](LICENSE).\n\n## Acknowledgments\n\n- **MERN Stack**: For providing a powerful, modern tech stack for building web applications.\n- **JWT**: For providing a secure way to transmit user data across different parts of the application.\n- **bcrypt**: For securely hashing passwords.\n\n```\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhasnaintypes%2Ffullstack-auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhasnaintypes%2Ffullstack-auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhasnaintypes%2Ffullstack-auth/lists"}