{"id":23733784,"url":"https://github.com/nshahaf/jwt-auth","last_synced_at":"2026-04-03T23:35:12.359Z","repository":{"id":270377221,"uuid":"910168413","full_name":"nshahaf/JWT-Auth","owner":"nshahaf","description":"JWT auth ","archived":false,"fork":false,"pushed_at":"2025-01-16T13:47:58.000Z","size":111,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-20T15:13:40.572Z","etag":null,"topics":["axios","cloudinary","express","jwt","jwt-authentication","mongodb","nodejs","tailwind","yup-validation","zustand"],"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/nshahaf.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-12-30T16:57:24.000Z","updated_at":"2025-01-16T13:48:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"ab186770-f24a-4702-9345-4b95b190aff8","html_url":"https://github.com/nshahaf/JWT-Auth","commit_stats":null,"previous_names":["nshahaf/jwt-auth"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshahaf%2FJWT-Auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshahaf%2FJWT-Auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshahaf%2FJWT-Auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshahaf%2FJWT-Auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nshahaf","download_url":"https://codeload.github.com/nshahaf/JWT-Auth/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239859562,"owners_count":19708863,"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":["axios","cloudinary","express","jwt","jwt-authentication","mongodb","nodejs","tailwind","yup-validation","zustand"],"created_at":"2024-12-31T05:19:34.104Z","updated_at":"2025-12-30T19:07:59.503Z","avatar_url":"https://github.com/nshahaf.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JWT Auth Project\n\nThis is a project showcasing the use of JWT tokens for authentication. The project includes both a frontend and a backend, utilizing various technologies such as React, Tailwind CSS, bcrypt, JWT, and more.\n\n## Features\n- User authentication with JWT tokens\n- User signup, login, and logout\n- Profile picture upload using Cloudinary\n- Protected routes\n- Error handling\n- State management with Zustand\n- Formik and Yup for form validation\n- Tailwind CSS for styling\n- MongoDB for storing user data\n\n## Technologies Used\n\n- **Frontend:**\n  - React\n  - Tailwind CSS\n  - Axios\n  - React Router\n  - Zustand\n  - Formik\n  - Yup\n  - DaisyUI\n\n- **Backend:**\n  - Node.js\n  - Express\n  - MongoDB\n  - Mongoose\n  - JWT (jsonwebtoken)\n  - bcrypt\n  - Cloudinary\n  - Chalk\n  - Cookie-parser\n  - CORS\n  - Dotenv\n  - Nodemon\n## Screenshot:\n![image](https://github.com/user-attachments/assets/5bbb39ee-cfbb-4185-99c5-fe038ec609ea)\n\n## Backend Project Structure\n```\nbackend/ \n├── logs \n├── node_modules \n├── src/\n│ ├── api/  \n│ │ ├── auth/\n│ │ │ ├── auth.controller.js\n│ │ │ ├── auth.route.js\n│ │ │ └── auth.service.js\n│ ├── lib/ \n│ │ ├── cloudinary.js\n│ │ ├── db.js\n│ │ ├── jwt.js\n│ ├── middleware/\n│ │ ├── protectedRoute.js\n│ │ ├── logger.js\n│ ├── models/ \n│ │ ├── user.model.js\n│ ├── tests/ \n│ ├── utils/ \n│ └── server.js\n├── .env \n├── package.json \n```\n## Frontend Project Structure\n```\nfrontend/ \n├── node_modules/ \n├── public/ \n├── src/ \n│ ├── App.jsx \n│ ├── assets/ \n│ ├── components/  \n│ ├── hooks/ \n│ ├── lib/ \n│ ├── pages/ \n│ │ ├── HomePage.jsx \n│ │ ├── LoginPage.jsx\n│ │ ├── SignupPage.jsx\n│ │ ├── ProfilePage.jsx\n│ │ ├── NotFoundPage.jsx\n│ │ ├── ServerErrorPage.jsx\n│ ├── store/ \n│ │ ├── authStore.js \n│ ├── index.css \n│ └── main.jsx \n├── index.html \n├── package.json \n├── tailwind.config.js \n├── eslint.config.js \n├── postcss.config.js  \n└── vite.config.js\n```\n## Getting Started\n\n### Prerequisites\n\n- Node.js\n- npm\n- MongoDB\n\n### Installation\n\n```sh\n# 1. Clone the repository:\ngit clone https://github.com/yourusername/ChatApp.git\ncd ChatApp\n\n# 2. Install dependencies:\ncd backend\nnpm install\ncd ../frontend\nnpm install\n\n# 3. create .env file in the backend directory and add the following variables:\nMONGODB_URI=your_mongodb_uri\nJWT_SECRET=your_jwt_secret\nPORT=3000\nNODE_ENV=development\nCLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name\nCLOUDINARY_API_KEY=your_cloudinary_api_key\nCLOUDINARY_API_SECRET=your_cloudinary_api_secret\nFRONTEND_URL=http://localhost:5173\n\n# 4. Start the backend server:\ncd backend\nnpm run dev\n\n# 5. Start the frontend server:\ncd frontend\nnpm run dev\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnshahaf%2Fjwt-auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnshahaf%2Fjwt-auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnshahaf%2Fjwt-auth/lists"}