Skip to content

Sidharth-Singh10/Affinity-backend

Repository files navigation

AffinityBanner

Welcome to the Affinity backend repository! This project is powered by the blazing-fast Axum framework, built using Rust to handle API requests and efficiently communicate with a PostgreSQL database. Our backend is optimized for high performance and scalability, designed to meet the demands of modern applications.

🛠️ Tech Stack

  • 🦀 Language: Rust
  • ⚙️ Framework: Axum
  • 💾 Database: PostgreSQL
  • 🐳 Containerization: Docker
  • 🚀 CI/CD: GitHub Actions, Jenkins, Docker Compose

📋 Setup

Prerequisites

Make sure you have the following installed:

Installation

  1. Clone the repository:

    git clone https://github.com/Sidharth-Singh10/Affinity-backend
    cd Affinity-backend
  2. Build and run the backend:

    cargo build
    cargo run

Running in Docker 🐳

To run the project in Docker, ensure that the environment variables for database connection are properly set. Follow these steps:

  1. Using Docker Compose:

    Update the docker-compose.yml file with the correct environment variables, and then:

    docker-compose up

Running on Kubernetes with Helm ⛵

Deploy the project on a Kubernetes cluster using Helm:

  1. Configure values.yaml:

    Make sure your values.yaml file is properly set up with the required database configuration.

  2. Install the application with Helm:

    helm install <app-name> ./helm_charts

🌱 Contributing

We welcome contributions! Please check out our CONTRIBUTING.md to get started. Contributions are expected to follow good practices, maintain code quality, and align with the project’s objectives.

🏗️ Affinity Project Overview

  1. Architecture (deprecated)

    Architecture

  2. Frontend Repository:
    The frontend code for this project is available at:
    Affinity Frontend

❤️ Our Valuable Contributors

Affinity Architecture

Contributors

📄 License

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

This version includes all necessary build, run, and deployment instructions formatted as code blocks for ease of use.