Skip to content

alievaleila/meta-graph-api

Repository files navigation

📊 Meta Post Performance Analyzer (Backend API)

Spring Boot Java Docker Railway

An automated backend service designed to fetch, persistence-store, and analyze post performance metrics from the Meta Graph API. Built using Spring Boot 3.5.4, utilizing robust clean-code architectures, automated scheduling, and multi-stage containerization.


🚀 Live Demo & Documentation


✨ Key Architectural Features & Contributions

While the core requirement focused on a basic data fetch, this production-ready application implements corporate-level patterns to showcase high technical proficiency:

  • Multi-Stage Dockerization: Fully containerized setup split into optimal Build and Runtime stages to minimize image sizes.
  • Automated CRON Scheduling: Implements an automated @Scheduled pipeline that periodically syncs Meta Graph API data with the internal database without human intervention.
  • Decoupled Architecture (DTO Pattern): Data Transfer Objects (record structures) decouple the internal JPA persistence layer from outward-facing JSON REST resources.
  • Complete Open-In-View Isolation: Optimized transactional layers to avoid unintended lazy loading patterns or database overhead.
  • Global Exception Handling: Centralized interceptor catching application runtime failures gracefully to present standardized HTTP error models.

🛠️ Technology Stack

  • Language & Framework: Java 17, Spring Boot 3.5.4
  • Data Tier: Spring Data JPA, Hibernate ORM, PostgreSQL
  • Connection Pool: HikariCP
  • Documentation: Springdoc OpenAPI v2.8.5 (Swagger UI)
  • Containerization: Docker & Docker Compose
  • Build Automation: Gradle Wrapper

⚙️ Environment Configuration (.env)

To comply with industry security standards, zero credentials or dynamic parameters are hardcoded. Secure configurations are managed seamlessly via system environment variables.

Create a .env file in the root directory:

# Database Credentials
DB_URL=jdbc:postgresql://db:5432/meta_post_analyzer
DB_USERNAME=your_secure_db_user
DB_PASSWORD=your_secure_db_password

# Meta Graph API Credentials
META_ACCESS_TOKEN=your_meta_graph_api_long_lived_token
META_PAGE_ID=your_facebook_page_id
META_POST_LIMIT=20

# Application Schedulers
SCHEDULER_CRON=0 0 * * * *
PORT=8080
📦 Local Installation & SetupRunning the entire stack locally (including the database and background schedulers) is simplified down to a single terminal operation using Docker Compose:Bash# 1. Clone the repository
git clone [https://github.com/your-username/meta-post-analyzer.git](https://github.com/your-username/meta-post-analyzer.git)
cd meta-post-analyzer

# 2. Spin up the application and PostgreSQL containers
docker-compose up --build
The server will boot up and bind cleanly to http://localhost:8080.📌 API Endpoints Summary1. Synchronize Data ManuallyEndpoint: POST /api/v1/posts/syncDescription: Instantly calls the Meta Graph API, updates the structural metrics, calculates data analytics, and saves to PostgreSQL.Sample Response: "20 posts successfully synchronized."2. Retrieve All Saved PostsEndpoint: GET /api/v1/postsDescription: Fetches all tracked posts ordered natively.3. Retrieve Top Performing ContentEndpoint: GET /api/v1/posts/topDescription: Selects the top 3 highest engagement posts using the automated weighted indicator algorithm:$$\text{Engagement} = \text{Likes Count} + \text{Comments Count}$$4. Strategic Performance Analysis ReportEndpoint: GET /api/v1/posts/analysisDescription: Computes data metrics over historical inputs to find structural metadata summaries.📈 Sample Analytical Output ReportWhen hitting the /api/v1/posts/analysis dashboard resource, the application returns custom intelligence payloads:JSON{
  "totalPostsAnalyzed": 20,
  "top3Posts": [
    {
      "id": 12,
      "postId": "123456789_001",
      "message": "Excited to share our newest Tech Stack roadmap insights!",
      "likesCount": 142,
      "commentsCount": 38,
      "engagement": 180,
      "createdAt": "2026-06-22 14:30:00"
    },
    ...
  ],
  "avgLikesByDay": {
    "MONDAY": 114.5,
    "WEDNESDAY": 82.1,
    "FRIDAY": 95.0
  },
  "bestDayToPost": "MONDAY",
  "conclusion": "Content published on MONDAY exhibits maximum organic push with an average target engagement high of 114.5 likes. Recommend scheduling primary technical articles early during the standard workweek."
}
Generated by Leyla Aliyeva. Completed with strict adherence to absolute clean architecture standards.

About

Production-ready Meta Graph API Post Performance Analyzer built with Spring Boot, Java 17, and PostgreSQL. Features automated CRON scheduling and advanced metric analytics.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors