Java Developer — Internship Tasks

Objective, Features, Technologies and tasks to learn Java Developer fundamentals and practical skills.

Objective

Equip interns with practical Java skills — object-oriented design, REST APIs with Spring Boot, database connectivity, unit testing, and deployment.


Features


Technologies

Beginner Level Tasks


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
  1. Source code on GitHub
  2. 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
  1. DB scripts/migration files
  2. 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
  1. Test suite and coverage report
  2. 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
  1. Dockerfile & docker-compose.yml
  2. Deployment notes and public URL if deployed

How to Submit Your Tasks

  1. 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.
  2. Upload your documents:
    • Upload to Google Drive or GitHub (public link).
    • Ensure anyone can view the files.
  3. 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!