Skip to content

An online carsties auction which has been created to learn micro services.

Notifications You must be signed in to change notification settings

AliShahbazi81/Carsties_Auctions

Repository files navigation

Carsties Auctions

Carsties Auctions is a comprehensive auction platform designed to facilitate online car auctions. This platform enables users to list their cars for auction, place bids on available cars, and manage auctions with ease. Built with a microservices architecture, it leverages the latest technologies for a robust, scalable, and user-friendly experience.

Features

  • User Authentication and Authorization: Secure user registration, login, and access control, ensuring that only authorized users can create auctions and place bids.
  • Auction Management: Users can list cars for auction, providing detailed descriptions, images, and auction terms.
  • Real-time Bidding: The platform supports real-time bidding, allowing users to see the latest bids instantly.
  • Auction Listings and Filters: Users can browse active auctions, applying filters to find cars that meet their criteria.
  • Notifications: Real-time notifications inform users about auction updates, bid statuses, and auction outcomes.

Architecture

Carsties Auctions is built on a microservices architecture, consisting of several key services:

  • Auction Service: Manages auction listings, including creation, updates, and deletions.
  • Bidding Service: Handles all aspects of placing and managing bids on auctions.
  • Identity Service: Responsible for user authentication and authorization.
  • Notification Service: Sends real-time notifications to users regarding auction activity.
  • Search Service: Provides advanced search functionality for auctions.
  • Gateway Service: Acts as a reverse proxy, routing requests to the appropriate services.

Technologies

  • Frontend: React, Next.js, Tailwind CSS for a dynamic and responsive UI.
  • Backend: .NET 7 for microservices, Entity Framework Core for ORM, MassTransit with RabbitMQ for messaging, gRPC for inter-service communication.
  • Database: PostgreSQL for relational data storage, MongoDB for bid management.
  • Deployment: Docker and Docker Compose for containerization and orchestration.

Getting Started

Prerequisites

  • Docker and Docker Compose
  • .NET SDK 7.0
  • Node.js and npm

Setup

  1. Clone the repository:
    git clone https://github.com/AliShahbazi81/Carsties_Auctions.git
  2. Navigate to the project directory and start the services using Docker Compose:
    docker-compose up --build
  3. Install frontend dependencies:
    cd client/web-app
    npm install
  4. Start the frontend application:
    npm run dev

The application will be available at http://localhost:3000.

Contributing

Contributions are welcome! If you'd like to contribute, please fork the repository and create a pull request with your changes. For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the MIT License - see the LICENSE file for details.