Kotlin Spring Boot Email Microservice
Budget: $250 – $750 USD
Project Overview
We are seeking a highly skilled software developer to design and build an email messaging producer microservice. This service is to be developed using Spring Boot and Kotlin. The microservice will be a crucial component of our broader application architecture, providing robust email messaging functionalities.
Skills and Experience Required
• Proven experience in developing applications using Spring Boot and Kotlin.
• Strong understanding of RESTful API design and implementation.
• Strong understanding of modern dependency injection practices.
• Familiarity with email protocol SMTP.
• Proficiency with multi-threading, data streaming and memory garbage collection best practices.
• Proficiency in version control systems and software, particularly Git and GitHub.
• Ability to write clear and comprehensive technical documentation.
Project Objectives
• Develop a Spring Boot application using Kotlin for an email messaging service.
o Accept and handle requests to send emails.
o Retrieve user account info from a repository.
o Dynamically generate emails using templates.
o Persist email metadata in a repository.
o Encrypt and decrypt sensitive data.
o Publish emails to be dispatched.
• Implement unit tests to ensure core functionality stability.
• Create comprehensive technical documentation detailing the service's functionality.
Technical Requirements
Email Messaging Service
The primary function of this microservice is to manage email operations, which include generating, persisting, scheduling, and publishing emails to be dispatched. The service should provide a simple, RESTful API for interacting with these functionalities.
Technical Documentation
Comprehensive technical documentation will be required, detailing the following:
• API specifications and usage guidelines.
• Database schema and models.
• Configuration and deployment instructions.
• Examples of API requests and responses.
• Unit & Integration Test reports of core functions.
Technologies and Frameworks
• Programming Language: Kotlin
• Framework: Spring Boot
• Build Tool: Maven
• Version Control: Git
• SMTP Framework: Javax Mail or Jakarta Mail
• Testing Suite: MockK (KoTest, optional)
Development Milestones
Milestone 1: Base Project and Git Repository
1. Basic Configuration
2. Code Architecture Setup (MVC)
3. Core Endpoints
a. Send Email
b. Schedule Email
c. Send Batch Email
d. Schedule Batch Email
4. HTTP to HTTPS
5. GitHub Repository (private)
Milestone 2: Data Handling & Service Integration
1. Data Encryption
2. EmailMetadataService
3. EmailMetadataRepository Interface
4. AccountDetailsService
5. AccountDetailsRepository Interface
6. EmailSchedulerService
7. MessageBrokerService Interface
Milestone 3: Integration and Testing
1. Simple Email Dispatcher
2. Simple MessageBrokerService Implementation
3. Mock EmailMetadataRepository Implementation
4. Mock AccountDetailsRepository Implementation
5. Unit and Integration Testing
Milestone 4: Documentation, Testing & Quality Assurance
1. Technical Documentation Creation
2. Unit and Integration Testing Reports
3. Deployment and Monitoring Setup
Evaluation Criteria
• Technical expertise and relevant experience.
• Quality and clarity of technical documentation.
• Ability to meet project milestones and deadlines.
• Proven communication and collaboration skills.
• Feedback from previous projects or employers.
We are seeking a highly skilled software developer to design and build an email messaging producer microservice. This service is to be developed using Spring Boot and Kotlin. The microservice will be a crucial component of our broader application architecture, providing robust email messaging functionalities.
Skills and Experience Required
• Proven experience in developing applications using Spring Boot and Kotlin.
• Strong understanding of RESTful API design and implementation.
• Strong understanding of modern dependency injection practices.
• Familiarity with email protocol SMTP.
• Proficiency with multi-threading, data streaming and memory garbage collection best practices.
• Proficiency in version control systems and software, particularly Git and GitHub.
• Ability to write clear and comprehensive technical documentation.
Project Objectives
• Develop a Spring Boot application using Kotlin for an email messaging service.
o Accept and handle requests to send emails.
o Retrieve user account info from a repository.
o Dynamically generate emails using templates.
o Persist email metadata in a repository.
o Encrypt and decrypt sensitive data.
o Publish emails to be dispatched.
• Implement unit tests to ensure core functionality stability.
• Create comprehensive technical documentation detailing the service's functionality.
Technical Requirements
Email Messaging Service
The primary function of this microservice is to manage email operations, which include generating, persisting, scheduling, and publishing emails to be dispatched. The service should provide a simple, RESTful API for interacting with these functionalities.
Technical Documentation
Comprehensive technical documentation will be required, detailing the following:
• API specifications and usage guidelines.
• Database schema and models.
• Configuration and deployment instructions.
• Examples of API requests and responses.
• Unit & Integration Test reports of core functions.
Technologies and Frameworks
• Programming Language: Kotlin
• Framework: Spring Boot
• Build Tool: Maven
• Version Control: Git
• SMTP Framework: Javax Mail or Jakarta Mail
• Testing Suite: MockK (KoTest, optional)
Development Milestones
Milestone 1: Base Project and Git Repository
1. Basic Configuration
2. Code Architecture Setup (MVC)
3. Core Endpoints
a. Send Email
b. Schedule Email
c. Send Batch Email
d. Schedule Batch Email
4. HTTP to HTTPS
5. GitHub Repository (private)
Milestone 2: Data Handling & Service Integration
1. Data Encryption
2. EmailMetadataService
3. EmailMetadataRepository Interface
4. AccountDetailsService
5. AccountDetailsRepository Interface
6. EmailSchedulerService
7. MessageBrokerService Interface
Milestone 3: Integration and Testing
1. Simple Email Dispatcher
2. Simple MessageBrokerService Implementation
3. Mock EmailMetadataRepository Implementation
4. Mock AccountDetailsRepository Implementation
5. Unit and Integration Testing
Milestone 4: Documentation, Testing & Quality Assurance
1. Technical Documentation Creation
2. Unit and Integration Testing Reports
3. Deployment and Monitoring Setup
Evaluation Criteria
• Technical expertise and relevant experience.
• Quality and clarity of technical documentation.
• Ability to meet project milestones and deadlines.
• Proven communication and collaboration skills.
• Feedback from previous projects or employers.