{"id":28234436,"url":"https://github.com/iyousefibrahim/outfav","last_synced_at":"2026-04-11T01:02:30.297Z","repository":{"id":277678169,"uuid":"926173334","full_name":"iyousefibrahim/OutFav","owner":"iyousefibrahim","description":"OutFav E-Commerce is a comprehensive e-commerce application built with a Node.js, Express, MongoDB, and Mongoose backend. The frontend is developed using Angular v19 with a focus on reusable components, state management using signals, and an optimized UI/UX powered by PrimeNG and Tailwind CSS.","archived":false,"fork":false,"pushed_at":"2025-03-30T17:24:37.000Z","size":902,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-18T22:13:42.921Z","etag":null,"topics":["angular","api","css","express","expressjs","flowbite","fullstack","html","javascript","jwt-authentication","middlewares","mongodb","mongoose","nodejs","stripe-payments","typescript"],"latest_commit_sha":null,"homepage":"https://out-fav.vercel.app","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/iyousefibrahim.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":"2025-02-02T18:13:31.000Z","updated_at":"2025-03-30T17:24:41.000Z","dependencies_parsed_at":"2025-02-15T11:29:58.066Z","dependency_job_id":"c5763a80-011c-4bb6-8825-760c94aa33b6","html_url":"https://github.com/iyousefibrahim/OutFav","commit_stats":null,"previous_names":["iyousefibrahim/outfav"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iyousefibrahim/OutFav","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iyousefibrahim%2FOutFav","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iyousefibrahim%2FOutFav/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iyousefibrahim%2FOutFav/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iyousefibrahim%2FOutFav/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iyousefibrahim","download_url":"https://codeload.github.com/iyousefibrahim/OutFav/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iyousefibrahim%2FOutFav/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259541650,"owners_count":22873723,"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":["angular","api","css","express","expressjs","flowbite","fullstack","html","javascript","jwt-authentication","middlewares","mongodb","mongoose","nodejs","stripe-payments","typescript"],"created_at":"2025-05-18T22:13:42.762Z","updated_at":"2026-04-11T01:02:30.249Z","avatar_url":"https://github.com/iyousefibrahim.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OutFav E-Commerce\n\nOutFav E-Commerce is a comprehensive e-commerce application built with a Node.js, Express, MongoDB, and Mongoose backend. The frontend is developed using Angular v19 with a focus on reusable components, state management using signals, and an optimized UI/UX powered by PrimeNG and Tailwind CSS.\n\n## Features Implemented\n\n### Backend\n\n- **Node.js \u0026 Express:**\n  - Server-side setup and API endpoints for CRUD operations.\n- **MongoDB \u0026 Mongoose:**\n  - Database integration and schema design.\n\n#### User Authentication:\n- JWT-based authentication.\n- Password hashing using bcryptjs.\n- Token verification middleware.\n\n#### User Model \u0026 Routes:\n- Register new users.\n- Login users with token generation.\n- Password validation and hashing.\n\n#### Product Model \u0026 Routes:\n- CRUD operations for products.\n- Image upload functionality.\n- Category association.\n\n#### Cart Model \u0026 Routes:\n- Add products to cart.\n- Update product quantity.\n- Remove products from cart.\n- Clear cart.\n\n#### Categories Model \u0026 Routes:\n- CRUD operations for categories.\n- Products associated with categories.\n\n#### Customer Model \u0026 Routes:\n- Manage customer information.\n- Admin-level access for customer management.\n\n#### Review Model \u0026 Routes:\n- Add reviews to products.\n- Update and delete reviews.\n- Rating calculation.\n\n#### Address Model \u0026 Routes:\n- Manage shipping addresses.\n\n#### Payment Integration:\n- Stripe integration for checkout sessions.\n- Create and manage payment intents.\n\n### Frontend\n\n- **Angular v19** for building a dynamic and scalable UI.\n- **State Management using Signals** for efficient reactivity.\n- **Reusable Components** to ensure modularity and maintainability.\n- **PrimeNG \u0026 Tailwind CSS** for an elegant and responsive design.\n- **ngx-spinner** for improved user experience during data fetching.\n- **Routing \u0026 Lazy Loading** for performance optimization.\n- **Authentication \u0026 Authorization** using JWT tokens.\n- **Figma Design by Ali Norouzi** for a structured and modern UI.\n\n### Security \u0026 Performance Enhancements\n\n- **CORS:**\n  - Cross-Origin Resource Sharing enabled.\n- **Helmet:**\n  - Securing HTTP headers.\n- **Compression:**\n  - Response body compression for performance optimization.\n- **XSS Clean:**\n  - Preventing XSS attacks.\n\n#### Rate Limiting:\n- Implemented rate limiting using `express-rate-limit` to prevent abuse.\n- Limits the number of requests from a single IP address within a given time window (e.g., 5 requests per minute).\n- Returns a custom JSON response when the rate limit is exceeded.\n\n#### Error Handling:\n- Centralized error handling using a custom AppError class.\n- Middleware for handling async errors.\n\n## Project Structure\n```\nOutFav E-Commerce\n│\n├── Authentication\n├── Product\n├── Cart\n├── Categories\n├── Customers\n├── Reviews\n├── Address\n├── Order\n├── Frontend (Angular 19)\n```\n\n## Technologies Used\n\n### Backend\n- Node.js\n- Express.js\n- MongoDB \u0026 Mongoose\n- JWT (JSON Web Tokens)\n- bcryptjs\n- validator.js\n- express-rate-limit\n- cors\n- helmet\n- compression\n- xss-clean\n\n### Frontend\n- Angular v19\n- Signals for state management\n- PrimeNG \u0026 Tailwind CSS\n- ngx-spinner\n- Angular Router \u0026 Lazy Loading\n\n---\n\n✨ This is a work in progress! Stay tuned for updates and improvements.\n\n🔗 **Backend API:** [OutFav API](https://outfav-production.up.railway.app/)\n🔗 **Figma Design:** [Ali Norouzi's Figma](https://www.figma.com/community/file/1357820302669976191)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiyousefibrahim%2Foutfav","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiyousefibrahim%2Foutfav","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiyousefibrahim%2Foutfav/lists"}