Skip to content

Rayandri/tinyx-backend

Repository files navigation

TinyX Backend

This repository contains the backend services for TinyX, a distributed micro-blogging platform. The backend is built with Quarkus, following a microservices architecture.

🚀 Features

  • User & Post Management
  • Social interactions (likes, follows, blocking)
  • Search & Indexing
  • Scalable, high-availability backend

🛠️ Technologies

  • Java 17
  • Quarkus (High-performance Java framework)
  • MongoDB (Document storage)
  • ElasticSearch (Search and indexing)
  • Neo4j (Graph database for social connections)
  • Redis (Message queue)
  • REST API with JAX-RS
  • JUnit & Testcontainers (Testing)

📦 Installation

  1. Clone the repository:

    git clone https://github.com/your-org/tinyx-backend.git
    cd tinyx-backend
  2. Install dependencies and build:

    mvn clean package
  3. Run the application:

    java -jar target/quarkus-app-runner.jar

    API runs on http://localhost:8080.

📌 Microservices in this repository

  • Post Service → Manages posts (MongoDB)
  • Social Service → Handles likes, follows, blocks (Neo4j)
  • Search Service → Indexes posts (ElasticSearch)
  • User Timeline Service → Manages personal timelines
  • Home Timeline Service → Aggregates posts from followed users

🔧 Environment Variables

Create a .env file with the following environment variables:

MONGO_URI=mongodb://localhost:27017/tinyx
ELASTICSEARCH_URI=http://localhost:9200
NEO4J_URI=bolt://localhost:7687
REDIS_URI=redis://localhost:6379

📑 API Documentation

All REST endpoints across the microservices are fully specified in a centralized OpenAPI file, providing comprehensive visibility, streamlined client generation, and easier integration.

🔍 Swagger UI access for each microservice:

The global OpenAPI file (openapi.yml) is located at the root of the project. It aggregates the API specifications of all services and can be used for client generation (via openapi-generator), validation, or integration with developer portals.

📜 License

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors