My name is Vikas Tandon and I have around 13 years of experience in the software industry. Currently, I am working as a Technical Manager. Although I have not used Spring Boot for around 1 year, I have prior experience with it.
I approached this technical assignment by starting with [fixing the issue in basic CRUD operation] (#1). This was crucial in ensuring that the core functionality of the system was working correctly.
I then utilized [DTO (Data Transfer Object) to communicate between the Controller and Service layers] (#3), allowing for clear and efficient communication between the different layers.
I also added [exception handling and returned appropriate HTTP status codes] (#5), to handle any errors or exceptions in a meaningful way and provide clear feedback to the user.
Next, I [upgraded the Spring Boot and Java version] (#7) to ensure that the system was using the latest and most secure version, which also provides better performance and bug fixes.
I also [protected the controller endpoints] (#9) to secure the system against unauthorized access and ensure data privacy.
Then, I [added caching logic for database calls] (#11) to optimize performance and reduce response times.
Lastly, I added [Swagger configuration for API documentation] (#13), which is essential for clear and concise documentation and effective communication and collaboration with team members and stakeholders.
Added logging(#16)
I am working on these open issues (#18, #17, and #15). Implementing unit tests, containerizing the app, and profiling for the development and production environments are important steps in ensuring the reliability, performance, and maintainability of the system.
The link, https://github.com/GitPointer/java-challenge/pulse/monthly, should provide a summary of the situation regarding the technical assignment.
- Install packages with
mvn package
- Run
mvn spring-boot:run
for starting the application (or use your IDE)
Application (with the embedded H2 database) is ready to be used ! You can access the url below for testing it :
- Swagger UI : http://localhost:8080/swagger-ui.html
- H2 UI : http://localhost:8080/h2-console
Don't forget to set the
JDBC URL
value asjdbc:h2:mem:testdb
for H2 UI.
-
download the zip file of this project
-
create a repository in your own github named 'java-challenge'
-
clone your repository in a folder on your machine
-
extract the zip file in this folder
-
commit and push
-
Enhance the code in any ways you can see, you are free! Some possibilities:
- Add tests
- Change syntax
- Protect controller end points
- Add caching logic for database calls
- Improve doc and comments
- Fix any bug you might find
-
Edit readme.md and add any comments. It can be about what you did, what you would have done if you had more time, etc.
-
Send us the link of your repository.
- use java 8
- Readability of your code
- Documentation
- Comments in your code
- Appropriate usage of spring boot
- Appropriate usage of packages
- Is the application running as expected
- No performance issues
Please let us know more about your Java experience in a few sentences. For example:
- I have 3 years experience in Java and I started to use Spring Boot from last year
- I'm a beginner and just recently learned Spring Boot
- I know Spring Boot very well and have been using it for many years