{"id":27185361,"url":"https://github.com/techmedaddy/ride-evee-backend-assignment-","last_synced_at":"2026-04-10T11:32:56.258Z","repository":{"id":285352321,"uuid":"957790747","full_name":"techmedaddy/Ride-Evee-Backend-Assignment-","owner":"techmedaddy","description":"A backend system for managing users in an EV ecosystem with JWT and OTP-based authentication. Built using Node.js, Express, and MongoDB with full Docker Compose support.","archived":false,"fork":false,"pushed_at":"2025-04-01T08:48:26.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-13T10:05:05.654Z","etag":null,"topics":["backend","docker","expressjs","mongodb","mongoose","nodejs"],"latest_commit_sha":null,"homepage":"https://ride-evee-backend-assignment.onrender.com","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/techmedaddy.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}},"created_at":"2025-03-31T06:16:18.000Z","updated_at":"2025-04-01T08:48:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"78b3b1aa-78aa-47ca-8ec3-2cdea189da6f","html_url":"https://github.com/techmedaddy/Ride-Evee-Backend-Assignment-","commit_stats":null,"previous_names":["techmedaddy/ride-evee-backend-assignment-"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/techmedaddy/Ride-Evee-Backend-Assignment-","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techmedaddy%2FRide-Evee-Backend-Assignment-","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techmedaddy%2FRide-Evee-Backend-Assignment-/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techmedaddy%2FRide-Evee-Backend-Assignment-/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techmedaddy%2FRide-Evee-Backend-Assignment-/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/techmedaddy","download_url":"https://codeload.github.com/techmedaddy/Ride-Evee-Backend-Assignment-/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techmedaddy%2FRide-Evee-Backend-Assignment-/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31641115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: 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":["backend","docker","expressjs","mongodb","mongoose","nodejs"],"created_at":"2025-04-09T17:46:32.089Z","updated_at":"2026-04-10T11:32:56.242Z","avatar_url":"https://github.com/techmedaddy.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚗 Ride Evee Backend Assignment\n\nA backend system for managing users in an electric vehicle ecosystem. It supports JWT and OTP-based authentication, and allows full CRUD operations on user data. Built with Node.js, Express.js, and MongoDB, fully containerized using Docker Compose.\n\n---\n\n\n\n\n\n\n## 🔧 Features\n\n- ✅ User Signup \u0026 Login with JWT\n- ✅ Email-based OTP Signup/Signin\n- ✅ Secure CRUD APIs for User Resource\n- ✅ Input validation and error handling\n- ✅ Protected routes via middleware\n- ✅ Modular and scalable architecture\n- ✅ Dockerized with `docker-compose.yml` (no Dockerfile used)\n\n  ## 🛠️🖥️ System Design \n\n![WhatsApp Image 2025-04-01 at 13 54 21_2144f056](https://github.com/user-attachments/assets/95fee03e-7b3e-451e-9784-e689512bbbc8)\n\n\n\n\n\n---\n\n## 📁 Project Structure\n```bash\n\n\nride-evee-backend/\n│\n├── docker-compose.yml\n├── .env                         # Environment variables (JWT_SECRET, DB_URI, EMAIL creds, etc.)\n├── package.json\n├── server.js                    # Entry point\n│\n├── config/\n│   └── db.js                    # MongoDB connection setup\n│\n├── controllers/\n│   ├── authController.js        # Signup, Login, OTP Send/Verify\n│   └── userController.js        # CRUD operations\n│\n├── models/\n│   └── User.js                  # User schema\n│   └── OTP.js                   # OTP schema (with expiry)\n│\n├── routes/\n│   ├── authRoutes.js\n│   └── userRoutes.js\n│\n├── middleware/\n│   └── authMiddleware.js        # JWT verification\n│   └── errorHandler.js          # Centralized error handler\n│\n└── utils/\n    └── sendEmail.js            # Nodemailer logic\n```\n\n---\n\n## 🚀 Setup Instructions\n\n### 1. Clone the repository\n\n```bash\ngit clone https://github.com/yourusername/ride-evee-backend.git\ncd ride-evee-backend\n```\n### 2. Create `.env` file\n\n```env\nPORT=4832\nJWT_SECRET=your_jwt_secret\nMONGO_URI=mongodb://mongo:27117/rideevee\nEMAIL_USER=your_email@example.com\nEMAIL_PASS=your_email_password\nOTP_EXPIRY_MINUTES=10\n```\n### 3. Start the application\n\n```bash\ndocker-compose up\n```\n\n## 📮 API Endpoints\n\n### 🔐 Auth\n\n- `POST /auth/signup` – Register user with JWT\n- `POST /auth/login` – Login user with JWT\n- `POST /auth/otp/send` – Send OTP to email\n- `POST /auth/otp/verify` – Verify OTP for login/signup\n\n### 👤 Users\n\n- `GET /users` – Get all users\n- `GET /users/:id` – Get user by ID\n- `POST /users` – Create a user\n- `PUT /users/:id` – Update user (Protected)\n- `DELETE /users/:id` – Delete user (Protected)\n\n\n## 📦 Tech Stack\n\n- **Backend:** Node.js, Express.js\n- **Database:** MongoDB\n- **Auth:** JWT, OTP via Email (Nodemailer)\n- **Containerization:** Docker + Docker Compose\n\n\nFrontend repo- https://github.com/techmedaddy/ride-evee-frontend\nFrontend deployment - https://techmedaddy.github.io/ride-evee-frontend/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechmedaddy%2Fride-evee-backend-assignment-","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechmedaddy%2Fride-evee-backend-assignment-","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechmedaddy%2Fride-evee-backend-assignment-/lists"}