Skip to content

Goal of Fresh Near Me is to connect consumers directly with local producers, making it easy for everyone to access and enjoy fresh, locally-grown food. This platform is about supporting local communities and promoting healthier, sustainable food choices.

Notifications You must be signed in to change notification settings

Lycan7hropus/FreshNearMe

Repository files navigation


Detailed Project Overview

This Kotlin-based web application serves as an advanced platform for posting and managing offers. It allows users to create, manage, and interact with a wide range of offers, while also providing functionalities for user authentication and profile management.

Core Technologies and Frameworks

  • Kotlin: Primary programming language
  • Ktor: Asynchronous web framework used for building servers and clients in connected systems.
  • MongoDB: For flexible and scalable data storage.
  • Google OAuth: For secure authentication, integrating Google's reliable sign-in systems.
  • Koin: Lightweight dependency injection framework.

Architectural Patterns and Key Design Choices

  • Clean Architecture: The application adheres to the principles of Clean Architecture, ensuring the separation of concerns and independence of different layers like data, domain, and presentation.
  • Repository Pattern: This pattern is evident in classes like CategoryRepositoryImpl and OfferRepositoryImpl, providing a clean abstraction layer over data access mechanisms.
  • Factory Pattern: Used in classes like CategoryFactory, simplifying object creation and enhancing flexibility.
  • Use Case/Interactor Pattern: Each business logic operation is encapsulated in a use case (e.g., CreateCategoryUseCase, GetUserOffersUseCase), promoting a clean separation of concerns and making the code more readable and testable.

Detailed Breakdown of Functionalities

  1. User Features:

    • UserRoute.kt establishes endpoints for user-related actions.
    • UserDataRepositoryImpl implements data handling operations, interfacing with the database.
    • Use cases like SaveUserUseCase and UpdateUserDataUseCase encapsulate specific user-related operations.
  2. Offer Features:

    • OfferRoute.kt sets up routes for managing offers.
    • OfferRepositoryImpl deals with offer data storage and retrieval.
    • Use cases such as CreateOfferUseCase and UpdateOfferUseCase handle individual aspects of offer management.
  3. Category Features:

    • CategoryRoute.kt manages endpoints for category operations.
    • CategoryService and CategoryRepository provide business logic and data access functionalities.
    • Use cases like CreateCategoryUseCase and DeleteCategoryUseCase focus on specific category operations.
  4. Authentication and Security:

    • AuthRoute.kt and GoogleUserInfoServiceImpl work together to provide secure authentication mechanisms.
    • Integration with Google OAuth ensures a reliable and secure sign-in process.
  5. Database Integration and Management:

    • MongoDatabaseProvider orchestrates database connections and interactions, ensuring efficient data management.
    • Modular database configurations are managed through files like DatabaseModule.kt, enhancing scalability and maintainability.

About

Goal of Fresh Near Me is to connect consumers directly with local producers, making it easy for everyone to access and enjoy fresh, locally-grown food. This platform is about supporting local communities and promoting healthier, sustainable food choices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages