Objective
Equip interns with practical Java skills — object-oriented design, REST APIs with Spring Boot, database connectivity, unit testing, and deployment.
Features
- Java 8+ programming and OOP best practices
- Spring Boot for backend services
- Database access with JDBC / JPA
- Unit testing (JUnit) & logging
- Build tools (Maven / Gradle) and Docker deployment
Technologies
Beginner Level Tasks
- Write a Java program for basic arithmetic operations (add, subtract, multiply, divide).
- Create a Java class demonstrating OOP concepts (class, object, constructors, methods).
- Build a simple console-based Student Management System.
- Write a file handling program: read/write text files using Java IO/NIO.
Java 11+ Spring Boot Maven / Gradle JPA / Hibernate MySQL / PostgreSQL JUnit
Note: Out of the 4 tasks given, you are required to complete any 3 tasks.
Tasks (4)
Goal
Create a CRUD REST API for a resource (e.g., Employee or Product) using Spring Boot.
Requirements
- Use Spring Web & Spring Data JPA
- Implement CRUD endpoints with proper HTTP status codes
- Use DTOs and basic validation
Deliverables
- Source code on GitHub
- Postman collection or sample curl commands
Goal
Connect the application to a relational database and use migrations (Flyway/Liquibase).
Requirements
- Design DB schema, use Spring Data JPA
- Apply migrations with Flyway or Liquibase
- Seed sample data
Deliverables
- DB scripts/migration files
- Configuration details and sample queries
Goal
Write unit tests for service classes and set up logging.
Requirements
- Use JUnit and Mockito for tests
- Configure SLF4J / Logback for logging
- Include test reports
Deliverables
- Test suite and coverage report
- Sample logs demonstrating important events
Goal
Containerize the Spring Boot application and provide instructions to run via Docker.
Requirements
- Create Dockerfile and docker-compose (if needed)
- Provide run commands and environment variables
- Optional: Deploy to a cloud service (Heroku/DigitalOcean)
Deliverables
- Dockerfile & docker-compose.yml
- Deployment notes and public URL if deployed
How to Submit Your Tasks
-
For each task:
- Create a separate document (DOC, DOCX, or PDF) for each task.
- Add screenshots, code snippets, commands, hosted links, and GitHub repo links.
-
Upload your documents:
- Upload to Google Drive or GitHub (public link).
- Ensure anyone can view the files.
-
Submit your links:
- Copy the public links for each task document.
- Go to the Task Submission page.
- Paste links clearly with task numbers.
Tip: Well-organized documentation = faster review!