{"id":28501724,"url":"https://github.com/nvminh162/shopeefood-app","last_synced_at":"2026-04-20T09:05:19.734Z","repository":{"id":297496479,"uuid":"996966636","full_name":"nvminh162/shopeefood-app","owner":"nvminh162","description":"Project course: Clone ShopeeFood by React Native (Cross platform application)","archived":false,"fork":false,"pushed_at":"2025-08-10T13:16:58.000Z","size":25914,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-10T15:26:44.579Z","etag":null,"topics":["cross-platform","expo","mongodb","nestjs-backend","nvminh162","react-native","shopeefood"],"latest_commit_sha":null,"homepage":"","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/nvminh162.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-06-05T18:30:54.000Z","updated_at":"2025-08-10T13:17:01.000Z","dependencies_parsed_at":"2025-07-25T08:34:36.814Z","dependency_job_id":"4d546da0-c773-4c90-a4a9-f5fe5beb2050","html_url":"https://github.com/nvminh162/shopeefood-app","commit_stats":null,"previous_names":["nvminh162/shopeefood-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nvminh162/shopeefood-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvminh162%2Fshopeefood-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvminh162%2Fshopeefood-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvminh162%2Fshopeefood-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvminh162%2Fshopeefood-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nvminh162","download_url":"https://codeload.github.com/nvminh162/shopeefood-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nvminh162%2Fshopeefood-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32040364,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"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":["cross-platform","expo","mongodb","nestjs-backend","nvminh162","react-native","shopeefood"],"created_at":"2025-06-08T16:07:37.122Z","updated_at":"2026-04-20T09:05:19.729Z","avatar_url":"https://github.com/nvminh162.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShopeeFood Full-Stack Application\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./README/welcome.png\" alt=\"ShopeeFood welcome\" width=\"200\"/\u003e\n  \u003cimg src=\"./README/home.png\" alt=\"ShopeeFood Home\" width=\"200\"/\u003e\n  \u003cimg src=\"./README/product.png\" alt=\"ShopeeFood Product\" width=\"200\"/\u003e\n  \u003cimg src=\"./README/information.png\" alt=\"ShopeeFood Info\" width=\"200\"/\u003e\n\u003c/div\u003e\n\n## 📋 Table of Contents\n\n- [Overview](#overview)\n- [Project Structure](#project-structure)\n- [Features](#features)\n- [Technologies](#technologies)\n- [Screenshots](#screenshots)\n- [Installation \u0026 Setup](#installation--setup)\n  - [Backend Setup](#backend-setup)\n  - [Client Frontend Setup](#client-frontend-setup)\n  - [Admin Dashboard Setup](#admin-dashboard-setup)\n- [Environment Configuration](#environment-configuration)\n- [Running the Application](#running-the-application)\n- [API Documentation](#api-documentation)\n- [Development Workflow](#development-workflow)\n- [Author](#author)\n- [License](#license)\n\n## 🚀 Overview\n\nShopeeFood is a comprehensive food delivery platform inspired by the popular Shopee Food service. This full-stack application consists of three main components:\n\n1. **Mobile Client** - A React Native mobile application for customers to browse restaurants, view menus, and place orders\n2. **Admin Dashboard** - A web-based administrative interface for managing restaurants, menus, and orders\n3. **Backend API** - A NestJS-based RESTful API service that powers both the client and admin applications\n\nThe application enables users to browse restaurants, view menus, add items to cart, place orders, and track delivery status. Restaurant owners and administrators can manage their menus, view orders, and handle customer requests through the admin dashboard.\n\n## 📁 Project Structure\n\nThe project is organized into three main directories:\n\n```\nshopeefood-app/\n├── shopeefood-backend/          # NestJS backend API\n├── shopeefood-frontend-client/  # React Native mobile client app\n├── shopeefood-frontend-admin/   # React admin dashboard\n└── README/                      # Project screenshots and documentation assets\n```\n\n## ✨ Features\n\n### Client App Features\n- User authentication (register, login, email verification)\n- Restaurant discovery and browsing\n- Search functionality for restaurants and dishes\n- Menu browsing with item details\n- Shopping cart management\n- Order placement and tracking\n- User profile management\n\n### Admin Dashboard Features\n- Admin authentication and authorization\n- Restaurant management (add, edit, delete)\n- Menu and menu item management\n- Order management and status updates\n- User management\n- Analytics and reporting\n\n### Backend API Features\n- RESTful API architecture\n- User authentication and authorization\n- Data persistence with MongoDB\n- Email services for verification and notifications\n- File upload for images\n- Caching for improved performance\n\n## 💻 Technologies\n\n### Backend\n- **Framework**: NestJS (Node.js)\n- **Database**: MongoDB with Mongoose\n- **Authentication**: JWT, Passport\n- **File Storage**: Local file system\n- **Email Service**: Nodemailer\n- **API Documentation**: Postman Collection\n\n### Mobile Client\n- **Framework**: React Native with Expo\n- **Navigation**: Expo Router (file-based)\n- **State Management**: React Context API\n- **API Integration**: Axios\n- **Form Handling**: Formik \u0026 Yup\n- **UI Components**: Custom components with React Native elements\n\n### Admin Dashboard\n- **Framework**: React.js\n- **UI Library**: Ant Design\n- **State Management**: React Context API / Redux\n- **API Integration**: Axios\n- **Routing**: React Router\n- **Server**: Express.js (for production serving)\n\n## 📱 Screenshots\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\u003cstrong\u003eWelcome \u0026 Home Screens\u003c/strong\u003e\u003c/p\u003e\n  \u003cimg src=\"./README/welcome.png\" alt=\"ShopeeFood Welcome\" width=\"250\"/\u003e\n  \u003cimg src=\"./README/home.png\" alt=\"ShopeeFood Home\" width=\"250\"/\u003e\n  \n  \u003cp\u003e\u003cstrong\u003eProduct \u0026 Search Screens\u003c/strong\u003e\u003c/p\u003e\n  \u003cimg src=\"./README/product.png\" alt=\"ShopeeFood Product\" width=\"250\"/\u003e\n  \u003cimg src=\"./README/search.png\" alt=\"ShopeeFood Search\" width=\"250\"/\u003e\n  \n  \u003cp\u003e\u003cstrong\u003eOrder \u0026 Information Screens\u003c/strong\u003e\u003c/p\u003e\n  \u003cimg src=\"./README/place-order.png\" alt=\"ShopeeFood Order\" width=\"250\"/\u003e\n  \u003cimg src=\"./README/information.png\" alt=\"ShopeeFood Information\" width=\"250\"/\u003e\n\u003c/div\u003e\n\n## 🔧 Installation \u0026 Setup\n\n### Prerequisites\n- Node.js (v18 or higher)\n- MongoDB (local or Atlas)\n- Expo CLI (for mobile client)\n- Git\n\n### Backend Setup\n\n1. Navigate to the backend directory:\n   ```bash\n   cd shopeefood-backend\n   ```\n\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n\n3. Create a `.env` file (see [Environment Configuration](#environment-configuration))\n\n4. Start the backend server:\n   ```bash\n   npm start\n   ```\n\n### Client Frontend Setup\n\n1. Navigate to the client directory:\n   ```bash\n   cd shopeefood-frontend-client\n   ```\n\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n\n3. Start the Expo development server:\n   ```bash\n   npm start\n   ```\n\n### Admin Dashboard Setup\n\n1. Navigate to the admin directory:\n   ```bash\n   cd shopeefood-frontend-admin\n   ```\n\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n\n3. Start the development server:\n   ```bash\n   npm start\n   ```\n\n## ⚙️ Environment Configuration\n\n### Backend `.env` Configuration\n\n```\n# Server Configuration\nPORT=8080\n\n# Database Configuration\nMONGODB_URI=mongodb://username:password@host:port/database\nACTIVE_KEY=your_active_key_here\n\n# Email Configuration\nMAIL_USER=your_email@example.com\nMAIL_PASSWORD=your_email_password\nMAIL_EXPIRE_IN=500\n\n# Sample Data\nSHOULD_INIT=true\nINIT_PASSWORD=123456\n\n# JWT Configuration\nJWT_SECRET=your_jwt_secret_key\nJWT_ACCESS_TOKEN_EXPIRED=1000d\n```\n\n### Admin Frontend `.env` Configuration\n\n```\nPORT=3000\n```\n\n\u003e ⚠️ **Note**: For security reasons, never commit your `.env` files to version control. To get the actual values for these environment variables, please contact the administrator at https://www.facebook.com/nvminh162\n\n## 🚀 Running the Application\n\n### Development Mode\n\nRun each component in development mode:\n\n**Backend:**\n```bash\ncd shopeefood-backend\nnpm run start:dev\n```\n\n**Client Frontend:**\n```bash\ncd shopeefood-frontend-client\nnpm start\n```\n\n**Admin Dashboard:**\n```bash\ncd shopeefood-frontend-admin\nnpm run dev\n```\n\n### Production Mode\n\nFor production deployment, you can use:\n\n**Backend:**\n```bash\ncd shopeefood-backend\nnpm run start:prod\n```\n\n**Client Frontend:**\nBuild the Expo app for the appropriate platform (iOS/Android)\n\n**Admin Dashboard:**\n```bash\ncd shopeefood-frontend-admin\nnpm start\n```\n\n## 📚 API Documentation\n\nThe API documentation is available via a Postman Collection. Import the collection file located at:\n\n```\nshopeefood-backend/data/nvminh162_shopeefood_postman_collection_nestjs.json\n```\n\nThis collection contains all the endpoints available in the API, along with example requests and responses.\n\n## 👨‍💻 Development Workflow\n\n1. Start the backend server first\n2. Launch the client and admin frontends\n3. Use the Postman collection to test API endpoints\n4. Make changes to the respective components as needed\n5. For mobile client development, use the Expo Go app on a physical device or emulator\n\n## 👤 Author\n\n- **Developer**: nvminh162\n- **Contact**: [Facebook](https://www.facebook.com/nvminh162)\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n---\n\n\u0026copy; 2025 ShopeeFood Application. All rights reserved.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvminh162%2Fshopeefood-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnvminh162%2Fshopeefood-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnvminh162%2Fshopeefood-app/lists"}