Welcome to Dimazzi, a modern and feature-rich food delivery application built using React and TypeScript. This project aims to provide a seamless user experience for ordering food online, with an intuitive UI and efficient state management.
- Features
- Tech Stack
- Getting Started
- Installation
- Running the App
- Scripts
- Folder Structure
- Contributing
- License
- User Authentication: Sign up, log in, and log out with email-based authentication.
- Restaurant Listing: Browse nearby restaurants and their menus.
- Food Ordering: Add items to the cart, manage quantities, and place orders.
- Order Tracking: Real-time order updates and tracking.
- Responsive Design: Optimized for both mobile and desktop.
- Dark Mode Support: Toggle between light and dark themes.
- Efficient State Management: Leveraging Zustand for state management.
- Type Safety: Fully typed components and functions using TypeScript.
- Frontend: React, TypeScript
- Routing: React Router
- State Management: Zustand / React Query / Context API
- Styling: Chakra UI
- API Handling: Axios
- Testing: React Testing Library, Playwright
To get a local copy up and running, follow these simple steps:
Make sure you have the following installed:
- Node.js: v14.x or later
- npm or yarn (preferred)
-
Clone the repository:
git clone https://github.com/exc1ut/dimmazzi cd dimazzi -
Install dependencies:
yarn install
To start the development server:
yarn devThe app will be available at http://localhost:3000.
dev: Runs the development server.build: Builds the project for production.start: Starts the production build.test: Runs the test suite.lint: Lints the code.
📦 dimazzi
├── 📂 public
├── 📂 src
│ ├── 📂 api # API service handlers and request utilities
│ ├── 📂 config # Configuration files (environment, constants)
│ ├── 📂 hoc # Higher-order components
│ ├── 📂 hooks # Custom React hooks
│ ├── 📂 img # Static images and media
│ ├── 📂 lib # External libraries and helper modules
│ ├── 📂 mocks # Mock data for testing
│ ├── 📂 modules # Business logic modules and reusable contexts
│ ├── 📂 pages # Main pages and routes
│ ├── 📂 providers # Global providers (theme, context, etc.)
│ ├── 📂 services # Service layers for API calls
│ ├── 📂 stores # Zustand stores for state management
│ ├── 📂 stories # Storybook stories for components
│ ├── 📂 styles # Global styles and themes
│ ├── 📂 theme # Theme configuration (dark/light mode settings)
│ ├── 📂 ui # Shared UI components (buttons, inputs, modals)
│ └── 📂 utils # Utility functions
├── .env.example # Environment variables template
├── package.json
└── README.md
Contributions are welcome! If you have ideas to improve the project, please feel free to open an issue or create a pull request.
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m "Add some feature" - Push to the branch:
git push origin feature/your-feature-name
- Open a Pull Request.
This project is licensed under the MIT License. You are free to use, modify, and distribute it as you see fit.
For any inquiries or issues, feel free to reach out at umid19999@gmail.com.
Enjoy using Dimazzi and happy coding!