A flagship Infosys Springboard internship project delivering end-to-end quality intelligence for modern software teams.
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.
- β‘ 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
- Project Structure
- Project Narrative
- Product Capabilities
- Architecture Overview
- Experience the Platform
- Getting Started for Developers
- Test Authoring Handbook
- Continuous Delivery Automation
- Public Endpoints & Navigation
- Operations & Deployment
- Roadmap & Reflections
- Contributors
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
controller/: MVC controllers handling HTTP requests, serving Thymeleaf templates, and exposing REST APIsservice/: Business logic including test execution engines (API/UI), scheduling, reporting, and notificationsmodel/: JPA entities representing database tables (projects, test cases, reports, users, scheduler jobs)repository/: Spring Data JPA repositories for database operationssecurity/: Clerk.dev authentication integration with JWT token verificationconfig/: Spring Boot configuration classes for async execution, security, WebDriver, and third-party integrationsanalysis/: API endpoint analysis and auto-generation modulesutil/: Helper utilities for JSON parsing and common operations
templates/: Thymeleaf HTML templates with server-side renderingstatic/: CSS, JavaScript, and image assets for the web UIapplication.properties: Database connections, API keys, and runtime configuration
- Unit tests for service layer components
- Integration tests for end-to-end workflows
- Test fixtures and mock data
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
- GitHub Actions workflow for automated testing and deployment
- Trigger configurations for scheduled and event-based executions
| 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) |
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.
| π§ 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 |
- Regression Planning: Upload suites β configure cadence β receive deep-dive analytics each morning
- Release Readiness: Execute gating suite on demand β instantly export annotated report for sign-off
- Incident Triage: Use dashboard filters β inspect failure artifacts β re-run impacted suites directly from UI
ββββββββββββββββββββββββ ββββββββββββββββββββββββ
β Web UI (Thymeleaf) βββββββββΆβ REST Controllers β
βββββββββββ²βββββββββββββ βββββββββββ²βββββββββββββ
β β
β βββββββββ΄ββββββββββ
β β Service Layer β
β β (Spring Boot) β
β βββββββββ²ββββββββββ
β β
β βββββββββ΄ββββββββββ
β β Scheduler & β
β β Async Workers β
β βββββββββ²ββββββββββ
β β
βΌ βββββββββ΄ββββββββββ
ββββββββββββββββββββββββ β Selenium Runner β
β MySQL 8 Persistence β β + API Client β
ββββββββββββββββββββββββ βββββββββ²ββββββββββ
β
βββββββββ΄ββββββββββ
β Reporting & β
β Export Engine β
βββββββββββββββββββ
- 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
π 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.
- β JDK 23+
- π¦ Maven 3.9+
- ποΈ MySQL 8.x or compatible service
- π³ Optional: Docker (for container build)
# 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:runVisit http://localhost:8080 and bootstrap your account. A starter project with sample suites is provisioned automatically.
If Chrome/Chromium introduces a DevTools mismatch, align Selenium's DevTools artifact:
mvn -Dselenium.devtools.artifact=selenium-devtools-v140 spring-boot:runReplace selenium-devtools-v140 with the artifact that matches your browser build.
{
"requests": [
{
"name": "Health check",
"method": "GET",
"url": "https://api.example.com/health",
"expectedStatus": 200,
"expectContains": ["ok"]
}
]
}{
"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"}
]
}{
"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" }
]
}
}
]
}.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.
| π 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). |
# Build the Docker image
docker build -t automation-platform .
# Run the container
docker run -p 8080:8080 automation-platformmvn -B testUnit tests currently cover the reporting and export services. Expanding coverage to the scheduling engine and notification adapters is planned.
- π OAuth2 SSO for enterprise rollout
- π Advanced analytics (flaky test detection, failure clustering)
- π Jira/ServiceNow connectors for automated defect logging
- β 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!
Made with β€οΈ by Infosys Springboard Batch 1 Interns
β Star this repo β’ π Report Issues β’ π€ Contribute
Β© 2024 Infosys Springboard | Built with passion and precision
