Skip to content

The Talabat Integration Platform API enables vendors to manage store, menus and orders on the Talabat platform. The API can be integrated with a vendor’s POS system to improve efficiency for menu management and order management. This API is for developers

Notifications You must be signed in to change notification settings

Ahmed-Mohamedd/Talabatt

Repository files navigation

Talabat API Project

This project is an e-commerce platform that utilizes the Entity Framework and LINQ for data access, the Onion Architecture and Repository Pattern for separation of concerns, and the Unit of Work and Specification Pattern for building efficient queries. The project follows the principles of the Clean Architecture, also known as the “Onion Architecture” which promotes separation of concerns and maintainability. The Repository pattern is used to abstract the data access layer and provide a consistent interface for querying the database. The Unit of Work pattern is used to manage the context and transaction of the Entity Framework. The Specification pattern is used to build complex queries in a composable and maintainable way. This project is built to handle large amounts of data and provide a scalable solution to e-commerce needs 1.

Project Structure

The project follows the Onion Architecture, dividing the codebase into layers:

  • Core: Contains domain models, interfaces, and business logic.
  • Infrastructure: Houses implementations of data access, external services, and other infrastructure concerns.
  • Application: Contains application services that orchestrate business logic using core domain models.
  • Web API: Exposes endpoints, DTOs, and handles HTTP requests.

Configuration

Configuration settings, such as database connection strings, Redis cache settings, Stripe API keys, Hangfire configurations, and Twilio credentials, are stored in the appsettings.json file. Update these settings with your specific configuration.

Database

The application uses MSSQL Server as its database. Entity Framework Core is employed for database operations. Migrations are used to create and update the database schema. Ensure to run dotnet ef database update after making changes to the models.

Caching

Redis is used for caching to enhance the performance of certain operations. The caching settings can be configured in appsettings.json.

Stripe Integration

Integration with the Stripe payment gateway is implemented for processing payments. The Stripe API key should be configured in appsettings.json.

Automapper

Automapper is used to simplify the mapping between entity models and DTOs. The mapping profiles can be found in the Utilities folder.

Onion Architecture

The project follows the principles of Onion Architecture, separating concerns into layers to maintain a clear and modular codebase.

Exception Middleware

Custom middleware is implemented to handle exceptions globally, providing consistent error responses.

Logging

Logging is implemented using Serilog to capture application events and errors. Log files can be configured in appsettings.json.

Fluent Validation

FluentValidation is used for robust server-side validation, ensuring that input data meets specified criteria.

Hangfire Background Jobs

Background job processing is handled using Hangfire, providing a reliable and scalable solution for executing tasks asynchronously.

Twilio Integration

Twilio is integrated for sending messages. Configure your Twilio credentials in appsettings.json to enable this feature.

API Endpoints

Detailed documentation for API endpoints can be found in the Documentation folder. This documentation provides information on request and response formats, authentication, and example usage.

Features

  • Onion Architecture: Separation of concerns and maintainability.
  • Repository Pattern: Abstraction of the data access layer and consistent interface for querying the database.
  • Unit of Work Pattern: Management of the context and transaction of the Entity Framework.
  • Specification Pattern: Building complex queries in a composable and maintainable way.
  • Stripe Payment Gateway: Integration with Stripe for payment processing.

Getting Started

To get started with this project, follow these steps:

  • Clone the repository to your local machine.
  • Open the solution file in Visual Studio.
  • Build the solution.
  • Run the project.

Usage

The Talabat Integration Platform API enables vendors to manage store, menus and orders on the Talabat platform. The API can be integrated with a vendor’s POS system to improve efficiency for menu management and order management. This API is for developers 2.

Contributing

Contributions are welcome! Please feel free to submit a pull request.

About

The Talabat Integration Platform API enables vendors to manage store, menus and orders on the Talabat platform. The API can be integrated with a vendor’s POS system to improve efficiency for menu management and order management. This API is for developers

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages