Skip to content

Birijithroshan/Automation_Springboard_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Infosys Springboard Internship (Batch 1) – Automated Testing Framework

A flagship Infosys Springboard internship project delivering end-to-end quality intelligence for modern software teams.


🎯 Overview

Automate UI and API suites, orchestrate schedules, and surface actionable analytics from a single Spring Boot portal. Designed and implemented by Batch 1 interns as a production-ready reference implementation that blends engineering rigor with polished product experience.

Key Highlights

  • ⚑ Accelerate regression cycles by centralizing test authoring, scheduling, execution, and reporting
  • πŸ‘₯ Target users: QA engineers, SDETs, release managers, and delivery leads
  • πŸ› οΈ Tech stack: Java 25, Spring Boot 3.4, Thymeleaf, Selenium WebDriver, MySQL 8.x, Quartz, Spring Async, Docker

πŸ“‘ Table of Contents


πŸ“ Project Structure

Springboard/
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”œβ”€β”€ java/
β”‚   β”‚   β”‚   └── com/example/automatedtestingframework/
β”‚   β”‚   β”‚       β”œβ”€β”€ AutomatedTestingFrameworkApplication.java  # Spring Boot main class
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ controller/                    # REST & MVC Controllers
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ DashboardController.java   # Dashboard analytics & metrics
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ DemoController.java        # Interactive sandbox endpoints
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ProfileController.java     # User profile management
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ProjectSetupController.java # Project configuration
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ReportController.java      # Test reports & exports
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ SchedulerController.java   # Test scheduling & triggers
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ TestManagementController.java # Test case CRUD operations
β”‚   β”‚   β”‚       β”‚   └── UserController.java        # User authentication & management
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ service/                       # Business Logic Layer
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ActionTemplateService.java # Test action templates
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ApiTestExecutor.java       # REST API test execution engine
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ UiTestExecutor.java        # Selenium WebDriver executor
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ EndpointAnalysisService.java # API endpoint discovery
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ MailService.java           # Brevo email integration
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ NotificationService.java   # Multi-channel notifications
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ReportingService.java      # Test result aggregation
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ReportExportService.java   # CSV/Excel/PDF exports
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ReportStorageService.java  # Report persistence
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ SchedulingService.java     # Quartz job orchestration
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ScreenshotService.java     # ImageKit screenshot storage
β”‚   β”‚   β”‚       β”‚   └── dto/                       # Service DTOs
β”‚   β”‚   β”‚       β”‚       └── ReportAnalytics.java   # Analytics data model
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ model/                         # Domain Entities (JPA)
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ EndpointAnalysisResult.java # API analysis results
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ EndpointAnalysisStatus.java # Analysis status enum
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ GeneratedActionFile.java   # Auto-generated test files
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ GeneratedReport.java       # Report metadata
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Project.java               # Test project entity
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Report.java                # Test execution report
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ SchedulerFrequency.java    # Cron frequency enum
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ SchedulerJob.java          # Scheduled job entity
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ TestCase.java              # Test case definition
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ TestCaseType.java          # API/UI type enum
β”‚   β”‚   β”‚       β”‚   └── User.java                  # User account entity
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ repository/                    # Data Access Layer (Spring Data JPA)
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ EndpointAnalysisResultRepository.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ GeneratedActionFileRepository.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ GeneratedReportRepository.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ProjectRepository.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ReportRepository.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ SchedulerJobRepository.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ TestCaseRepository.java
β”‚   β”‚   β”‚       β”‚   └── UserRepository.java
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ security/                      # Authentication & Authorization
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ AuthenticatedUser.java     # Security context user
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ClerkAuthenticationFilter.java # Clerk.dev JWT filter
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ClerkTokenVerifier.java    # Token validation
β”‚   β”‚   β”‚       β”‚   └── ClerkUserSynchronizer.java # User sync with Clerk
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ config/                        # Spring Configuration
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ AsyncConfig.java           # Async thread pool setup
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ClerkProperties.java       # Clerk configuration properties
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ DevToolsConfig.java        # Selenium DevTools config
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ImageKitConfig.java        # ImageKit CDN properties
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ImageKitConfiguration.java # ImageKit bean setup
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ SecurityConfig.java        # Spring Security configuration
β”‚   β”‚   β”‚       β”‚   └── WebConfig.java             # MVC & CORS configuration
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ analysis/                      # Endpoint Analysis Module
β”‚   β”‚   β”‚       β”‚   └── EndpointAnalysisPayload.java # Analysis request payload
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       └── util/                          # Utilities
β”‚   β”‚   β”‚           └── JsonParserUtil.java        # JSON parsing helpers
β”‚   β”‚   β”‚
β”‚   β”‚   └── resources/
β”‚   β”‚       β”œβ”€β”€ application.properties             # Main configuration file
β”‚   β”‚       β”œβ”€β”€ config.properties                  # Additional config
β”‚   β”‚       β”œβ”€β”€ schema.sql                         # Database schema DDL
β”‚   β”‚       β”‚
β”‚   β”‚       β”œβ”€β”€ static/                            # Static Web Assets
β”‚   β”‚       β”‚   β”œβ”€β”€ css/                           # Stylesheets
β”‚   β”‚       β”‚   β”œβ”€β”€ js/                            # JavaScript files
β”‚   β”‚       β”‚   └── images/                        # Images & icons
β”‚   β”‚       β”‚
β”‚   β”‚       β”œβ”€β”€ templates/                         # Thymeleaf HTML Templates
β”‚   β”‚       β”‚   β”œβ”€β”€ dashboard.html                 # Main dashboard view
β”‚   β”‚       β”‚   β”œβ”€β”€ demo/                          # Demo sandbox pages
β”‚   β”‚       β”‚   β”œβ”€β”€ documentation.html             # API documentation
β”‚   β”‚       β”‚   β”œβ”€β”€ fragments/                     # Reusable UI fragments
β”‚   β”‚       β”‚   β”œβ”€β”€ landing.html                   # Landing page
β”‚   β”‚       β”‚   β”œβ”€β”€ login.html                     # Login page
β”‚   β”‚       β”‚   β”œβ”€β”€ profile.html                   # User profile
β”‚   β”‚       β”‚   β”œβ”€β”€ project-setup.html             # Project setup wizard
β”‚   β”‚       β”‚   β”œβ”€β”€ register.html                  # Registration page
β”‚   β”‚       β”‚   β”œβ”€β”€ regression-monitoring.html     # Regression trends
β”‚   β”‚       β”‚   β”œβ”€β”€ reports.html                   # Test reports viewer
β”‚   β”‚       β”‚   β”œβ”€β”€ scheduler.html                 # Test scheduler UI
β”‚   β”‚       β”‚   β”œβ”€β”€ signin.html                    # Sign-in page
β”‚   β”‚       β”‚   └── test-management.html           # Test case management
β”‚   β”‚       β”‚
β”‚   β”‚       β”œβ”€β”€ github-actions/                    # CI/CD workflows stored as resources
β”‚   β”‚       └── META-INF/                          # Maven metadata
β”‚   β”‚
β”‚   └── test/
β”‚       β”œβ”€β”€ java/
β”‚       β”‚   └── com/example/automatedtestingframework/
β”‚       β”‚       └── service/                       # Service Layer Tests
β”‚       β”‚           β”œβ”€β”€ ReportingServiceTest.java  # Reporting service unit tests
β”‚       β”‚           └── ReportExportServiceTest.java # Export service unit tests
β”‚       β”‚
β”‚       └── resources/                             # Test resources & fixtures
β”‚
β”œβ”€β”€ artifacts/                                     # Test Execution Artifacts (Generated)
β”‚   β”œβ”€β”€ api/                                       # API test results (JSON)
β”‚   β”‚   β”œβ”€β”€ testCreateComment_*.json               # Comment creation results
β”‚   β”‚   β”œβ”€β”€ testCreatePost_*.json                  # Post creation results
β”‚   β”‚   β”œβ”€β”€ testDeletePost_*.json                  # Delete operation results
β”‚   β”‚   β”œβ”€β”€ testGetAllPosts_*.json                 # GET all posts results
β”‚   β”‚   β”œβ”€β”€ testGetAllUsers_*.json                 # GET all users results
β”‚   β”‚   β”œβ”€β”€ testGetCommentsForPost_*.json          # Comment retrieval results
β”‚   β”‚   β”œβ”€β”€ testGetSinglePost_*.json               # Single post results
β”‚   β”‚   β”œβ”€β”€ testGetSingleUser_*.json               # Single user results
β”‚   β”‚   β”œβ”€β”€ testPatchPost_*.json                   # PATCH operation results
β”‚   β”‚   └── testUpdatePost_*.json                  # PUT operation results
β”‚   β”‚
β”‚   β”œβ”€β”€ reports/                                   # Generated Test Reports
β”‚   β”‚   β”œβ”€β”€ CSV_Report_*.csv                       # CSV format reports
β”‚   β”‚   β”œβ”€β”€ Excel_Report_*.xlsx                    # Excel format reports
β”‚   β”‚   └── TestReport_*.html                      # HTML format reports
β”‚   β”‚
β”‚   └── screenshots/                               # UI Test Screenshots
β”‚       └── test*_FAILED_*.png                     # Failure evidence screenshots
β”‚
β”œβ”€β”€ database/                                      # Database Scripts (Currently empty)
β”‚
β”œβ”€β”€ integration/
β”‚   └── github-actions/                            # GitHub Actions CI/CD
β”‚       β”œβ”€β”€ README.md                              # CI/CD documentation
β”‚       └── automation-trigger.yml                 # Workflow definition
β”‚
β”œβ”€β”€ target/                                        # Maven Build Output (Generated)
β”‚   β”œβ”€β”€ automated-testing-framework-1.0.0.jar      # Executable JAR
β”‚   β”œβ”€β”€ classes/                                   # Compiled main classes
β”‚   β”œβ”€β”€ test-classes/                              # Compiled test classes
β”‚   β”œβ”€β”€ generated-sources/                         # Auto-generated sources
β”‚   β”œβ”€β”€ generated-test-sources/                    # Auto-generated test sources
β”‚   β”œβ”€β”€ maven-archiver/                            # Maven packaging metadata
β”‚   └── maven-status/                              # Maven build status
β”‚
β”œβ”€β”€ pom.xml                                        # Maven project configuration
β”œβ”€β”€ Dockerfile                                     # Docker container definition
β”œβ”€β”€ README.md                                      # Project documentation (this file)
β”œβ”€β”€ LICENSE                                        # MIT License
└── app.log                                        # Application runtime logs

πŸ“‚ Directory Breakdown

Core Application (src/main/java)

  • controller/: MVC controllers handling HTTP requests, serving Thymeleaf templates, and exposing REST APIs
  • service/: Business logic including test execution engines (API/UI), scheduling, reporting, and notifications
  • model/: JPA entities representing database tables (projects, test cases, reports, users, scheduler jobs)
  • repository/: Spring Data JPA repositories for database operations
  • security/: Clerk.dev authentication integration with JWT token verification
  • config/: Spring Boot configuration classes for async execution, security, WebDriver, and third-party integrations
  • analysis/: API endpoint analysis and auto-generation modules
  • util/: Helper utilities for JSON parsing and common operations

Frontend (src/main/resources)

  • templates/: Thymeleaf HTML templates with server-side rendering
  • static/: CSS, JavaScript, and image assets for the web UI
  • application.properties: Database connections, API keys, and runtime configuration

Test Suite (src/test/java)

  • Unit tests for service layer components
  • Integration tests for end-to-end workflows
  • Test fixtures and mock data

Generated Artifacts (artifacts/)

  • api/: JSON payloads from API test executions (timestamped)
  • reports/: Multi-format test reports (CSV, Excel, HTML)
  • screenshots/: Captured screenshots from failed UI tests for debugging

CI/CD (integration/github-actions)

  • GitHub Actions workflow for automated testing and deployment
  • Trigger configurations for scheduled and event-based executions

πŸ—οΈ Technology Stack by Layer

Layer Technologies
Frontend Thymeleaf, HTML5, CSS3, JavaScript, Bootstrap
Backend Spring Boot 3.4, Spring MVC, Spring Security, Spring Data JPA
Testing Selenium WebDriver 4.25, REST Assured, JUnit 5
Scheduling Quartz Scheduler, Spring Async
Database MySQL 8.x, HikariCP connection pool
Authentication Clerk.dev (JWT-based)
Storage ImageKit CDN (screenshots), Local filesystem fallback
Notifications Brevo (formerly Sendinblue) email API
Build Maven 3.9+, Java 23
Deployment Docker, Render.com (live demo)

πŸ“– Project Narrative

Infosys Springboard's inaugural internship batch was challenged to create a platform that could:

  • βœ… Unify fragmented automation efforts across API and UI suites
  • πŸ“Š Offer management-level visibility with dashboards that highlight reliability, trendline regressions, and execution SLAs
  • πŸš€ Scale with enterprise constraints, including nightly schedules, multi-project ownership, and rigorous access control

The result is a modular framework that turns JSON definitions into executable suites, streams results to analytics, and closes the loop with notifications and exports.


🎨 Product Capabilities

πŸ”§ Module ✨ Highlights πŸ’Ž Value Delivered
Test Authoring JSON-based DSL, bulk import, version snapshots Rapid test onboarding without IDE dependency
Execution Engine Parallel runners, Selenium WebDriver integration, API clients Reduced runtime and consistent environment setup
Scheduler Cron-like planner, manual triggers, run history Predictable daily/weekly/monthly cadences
Reporting & Analytics Trend charts, failure clustering, export to CSV/PDF Insightful retrospectives for QA and leadership
Notifications Brevo email integration, custom webhooks Immediate stakeholder updates on regressions
Asset Management ImageKit-backed screenshot storage, local fallback Rich evidence for debugging UI failures

πŸ”„ Signature Functional Flows

  1. Regression Planning: Upload suites β†’ configure cadence β†’ receive deep-dive analytics each morning
  2. Release Readiness: Execute gating suite on demand β†’ instantly export annotated report for sign-off
  3. Incident Triage: Use dashboard filters β†’ inspect failure artifacts β†’ re-run impacted suites directly from UI

πŸ—οΈ Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Web UI (Thymeleaf)  │◀──────▢│  REST Controllers    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚                              β”‚
          β”‚                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚                      β”‚  Service Layer  β”‚
          β”‚                      β”‚  (Spring Boot)  β”‚
          β”‚                      β””β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚                              β”‚
          β”‚                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚                      β”‚  Scheduler &    β”‚
          β”‚                      β”‚  Async Workers  β”‚
          β”‚                      β””β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚                              β”‚
          β–Ό                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚ Selenium Runner β”‚
β”‚  MySQL 8 Persistence β”‚         β”‚ + API Client    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                          β”‚
                                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                  β”‚  Reporting &    β”‚
                                  β”‚  Export Engine  β”‚
                                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ” Core Principles

  • Security: Spring Security-driven authentication, encrypted secrets for third-party APIs
  • Scalability: Quartz job store, asynchronous execution pools, Docker packaging for containerized deployments
  • Extensibility: Modular service abstractions allow plugging in new notification channels or storage providers

🌟 Experience the Platform

πŸš€ Try It Now

Launch Demo Interactive Sandbox

πŸ“Œ UI Design Cues: Inspired by enterprise observability dashboardsβ€”high-contrast dark mode, strong typographic hierarchy, and call-to-action emphasis for quick navigation between operations, analytics, and scheduling.


πŸš€ Getting Started for Developers

Prerequisites

  • β˜• JDK 23+
  • πŸ“¦ Maven 3.9+
  • πŸ—„οΈ MySQL 8.x or compatible service
  • 🐳 Optional: Docker (for container build)

Quick Start

# 1. Copy configuration template
cp src/main/resources/application.properties.example src/main/resources/application.properties

# 2. Configure your environment
# Edit application.properties with database credentials, Brevo keys, and ImageKit configuration

# 3. Run the application
mvn spring-boot:run

Visit http://localhost:8080 and bootstrap your account. A starter project with sample suites is provisioned automatically.

πŸ’‘ Chromium Compatibility Tip

If Chrome/Chromium introduces a DevTools mismatch, align Selenium's DevTools artifact:

mvn -Dselenium.devtools.artifact=selenium-devtools-v140 spring-boot:run

Replace selenium-devtools-v140 with the artifact that matches your browser build.


πŸ“ Test Authoring Handbook

API Example

{
  "requests": [
    {
      "name": "Health check",
      "method": "GET",
      "url": "https://api.example.com/health",
      "expectedStatus": 200,
      "expectContains": ["ok"]
    }
  ]
}

UI Example

{
  "steps": [
    {"action": "navigate", "url": "http://localhost:8080/demo/login"},
    {"action": "type", "by": "css", "selector": "#email", "text": "user@example.com"},
    {"action": "type", "by": "css", "selector": "#password", "text": "SuperSecret123"},
    {"action": "click", "by": "css", "selector": "button[type=submit]"},
    {"action": "assertTitle", "value": "Automation Demo Login"}
  ]
}

Bulk Import Format

{
  "tests": [
    {
      "name": "Smoke API",
      "type": "API",
      "definition": {
        "requests": [ { "name": "Ping", "method": "GET", "url": "https://httpbin.org/get" } ]
      }
    },
    {
      "name": "Smoke UI",
      "type": "UI",
      "definition": {
        "steps": [
          { "action": "navigate", "url": "http://localhost:8080/demo/login" },
          { "action": "assertTitle", "value": "Automation Demo Login" }
        ]
      }
    }
  ]
}

πŸ“₯ Download Ready-Made Import Bundles

πŸ“¦ Suite πŸ“‹ Description ⬇️ Download
UI Sample Pack Complete end-to-end BlazeDemo booking scenarios showcasing waits, assertions, and form fills. Download UI JSON
API Sample Pack HTTPBin-powered CRUD collection covering auth headers, redirects, and status assertions. Download API JSON

πŸ”„ Continuous Delivery Automation

.github/workflows/ci-tests.yml keeps the project healthy by running on every push, daily at 06:00 UTC, and on manual dispatch:

name: Java Test Suite

on:
  push:
    branches:
      - '**'
  schedule:
    - cron: '0 6 * * *'
  workflow_dispatch:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-java@v4
        with:
          distribution: temurin
          java-version: '23'
          cache: maven
      - run: mvn -B test
      - name: Publish README summary
        run: |
          {
            echo "## Project README"
            echo ""
            cat README.md
          } >> "$GITHUB_STEP_SUMMARY"

Every run publishes the README into the workflow summary, giving stakeholders instant access to the latest documentation alongside build results.


πŸ—ΊοΈ Public Endpoints & Navigation Map

πŸ”— Route πŸ“‘ Method(s) πŸ“„ Description
/ GET Landing page with single-click access to sign in or explore the product narrative.
/demo/login GET Lightweight sandbox UI demonstrating the built-in test selectors.
/dashboard GET Authenticated workspace summarizing active projects and quality trends.
/test-management GET/POST Manage, import, and execute JSON-defined suites.
/scheduler GET/POST Configure cron-like jobs and trigger runs on demand.
/reports GET/POST Analyze regression history, export filtered datasets.
/api/run/project/{projectId} POST Fire-and-forget endpoint for CI/CD tools to trigger full project executions (expects optional X-AUTOMATION-TOKEN header).

🐳 Operations & Deployment

Docker Workflow

# Build the Docker image
docker build -t automation-platform .

# Run the container
docker run -p 8080:8080 automation-platform

Testing Locally

mvn -B test

Unit tests currently cover the reporting and export services. Expanding coverage to the scheduling engine and notification adapters is planned.


πŸ—“οΈ Roadmap & Internship Reflections

Near-Term Enhancements

  • πŸ” OAuth2 SSO for enterprise rollout
  • πŸ“Š Advanced analytics (flaky test detection, failure clustering)
  • πŸ”— Jira/ServiceNow connectors for automated defect logging

Lessons from Batch 1

  • βœ… Early alignment on data contracts simplified UI/Backend collaboration
  • ⚑ Scheduled load tests were key to sizing thread pools and database connections
  • πŸ“š Automating documentation (README summaries in CI) keeps stakeholders informed without manual effort

πŸ’‘ Interested in extending the framework? Submit a pull request or open a discussionβ€”Batch 1 will happily guide the next wave of interns!


πŸ‘₯ Contributors

Made with ❀️ by Infosys Springboard Batch 1 Interns

⭐ Star this repo β€’ πŸ› Report Issues β€’ 🀝 Contribute


Β© 2024 Infosys Springboard | Built with passion and precision

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published