Skip to content

franciscostein/RhinoForge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RhinoForge.API

.NET 8 C# 12 Docker MongoDB Made with Love by Leandro Costa


RhinoForge.API: A .NET 8 REST API crafted to serve as a robust backend for managing a comprehensive inventory of European heavy-duty, off-road, and military trucks. This project is a study case, designed to showcase advanced skills in building high-performance, maintainable, and scalable enterprise-grade solutions.


🎯 Project Overview

Inspired by platforms like Planet-Trucks.com and my passion for powerful, resilient European machinery (MAN, Mercedes-Benz, Scania, Volvo, etc.), RhinoForge.API aims to be the definitive backend for a specialized truck dealership or marketplace. It focuses on the unique attributes and operational demands of commercial, military, and off-road vehicles.

The project emphasizes adopting the latest and best practices in the .NET ecosystem, providing a tangible example of modern architectural patterns, efficient data handling, and robust API design.

✨ Key Features

  • Comprehensive Vehicle Management: CRUD operations for detailed truck, semi-trailer, and heavy equipment listings.
    • Specific attributes for engine, axle configuration (e.g., 8x8, 6x4), bodywork type (Tipper, Chassis, Military), mileage, etc.
    • Image management integration (cloud storage ready).
  • Advanced Search & Filtering: Powerful, performant search capabilities by various criteria (make, model, year, price, bodywork, location, features) with full-text search.
  • User & Seller Management: Secure user authentication (JWT) and role-based authorization (buyers, sellers, administrators). Seller profile management.
  • Inquiry System: API endpoints for potential buyers to contact sellers.
  • Favorites & Saved Searches: Personalization features for authenticated users.
  • API Versioning: Future-proof API design with clear versioning strategy.
  • Health Checks: Endpoints for monitoring API and dependency health.

🚀 Technology Stack & Best Practices

This project leverages the most current and recommended technologies and patterns in the .NET world:

  • Framework: ASP.NET Core 8.0
  • Language: C# 12 (utilizing latest language features)
  • Architecture:
    • Clean Architecture / Vertical Slice Architecture: For modularity, testability, and separation of concerns.
    • Minimal APIs: Where appropriate for lean endpoint definitions.
  • Data Access:
    • ORM: Entity Framework Core 8.0
    • Database: PostgreSQL (with potential for advanced features like JSONB for flexible data structures)
  • Advanced Search: Elasticsearch (with NEST client) for high-performance, scalable full-text and filtered queries.
  • Caching: Distributed Caching with Redis for performance optimization.
  • Asynchronous Processing: MassTransit / RabbitMQ for reliable handling of background tasks (e.g., image processing, notifications, data synchronization).
  • Authentication & Authorization: JWT Bearer Tokens with ASP.NET Core Identity and Policy-Based Authorization.
  • Validation: FluentValidation for robust request data validation.
  • Logging: Structured Logging with Serilog (to console, files, and potentially cloud monitoring like Application Insights).
  • API Documentation: Swagger/OpenAPI (Swashbuckle.AspNetCore) for interactive documentation.
  • Containerization: Docker for consistent development environments and deployment.
  • Testing: Comprehensive Unit and Integration Tests (xUnit.net, Moq).
  • CI/CD: Designed for seamless integration with GitHub Actions or Azure DevOps Pipelines.

🛠️ Getting Started

  1. Clone the repository:
    git clone [https://github.com/your-username/RhinoForge.git](https://github.com/franciscostein/RhinoForge.git)
    cd RhinoForge.API
  2. Set up Docker (Recommended): Ensure Docker Desktop is running. This project includes docker-compose.yml for easily spinning up MongoDB, Redis, and RabbitMQ.
    docker-compose up -d
  3. Database Migration: Apply EF Core migrations to set up your database schema.
    dotnet ef database update --project YourProject.Infrastructure
  4. Run the API:
    dotnet run --project RhinoForge.API
  5. Access Swagger UI: Once running, navigate to https://localhost:7001/swagger (or your configured port) in your browser to explore the API endpoints interactively.

📈 Future Enhancements

  • Geospatial search capabilities for location-based truck listings.
  • Real-time notifications using SignalR.
  • Integration with external vehicle history report services.
  • Dedicated Admin Dashboard (could be a separate client application).

🤝 Contributing

While primarily a personal study case, feedback and suggestions are welcome. Feel free to open issues or discussions on the repository.

👤 Author

Leandro Francisco da Costa


About

RhinoForge: A .NET 8 REST API for European heavy-duty, off-road, & military trucks. Showcases modern architecture (Clean/Vertical Slices), advanced search, caching, async, Docker, and CI/CD readiness. A developer's study case demonstrating high-performance, maintainable solutions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages