Hi, I'm Martin Atanasov. Java backend developer.
My personal projects
Computer Store - Spring Fullstack demo project
Software architecture: MVC
Project status: in development (early stage)
Clould Platform: AWS Elastic Beanstalk
This is online store web application.
Features: The web application supports roles (customer, manager, admin), login/register, dynamic search for products, order products, data caching, sort and pagination, frontend optimisation (static resource cashing, gzip convertion), notifications, error handling
Tools/library: Java 21, Spring (Web MVC, JPA, Validation, Actuator, Data REST, Data cache, Security, AOP), Thymeleaf, JavaScript, Lombok, Bulma (Boostrap competitor), Swiper, Maven, MySQL
Contacts app - Fullstack project with Micronaut and Angular
Software architecture: MVC
Description:
This is a CRUD application for contacts, and the assignment was a task for a full-stack developer. When starting this project, I decided to highlight my backend skills and learn more about frontend framework applications and how they interact with the backend. This is the first frontend application I've built, and I set myself the goal of completing the functionalities from the assignment within two days. Despite the success I achieved with the functionalities, there were issues related to the lack of good design, security, forbidden routing links, and for this reason, I decided to go back and make improvements to the frontend part.
Features:
An application with CRUD functionalities. The project allows working through an Angular user interface, generated UI via Swagger, or Postman collections through a Restful API.
Software:
Frontend: Angular 18, Node 20, TypeScript
Backend: Java 17, Micronaut, Gradle, Hibernate, Lombok, OpenAPI v3
Other: PostgreSQL 16, git, Docker, Postman
Book vault - Fullstack project with Spring and Vaadin flow
Software architecture: MVC
Description:
This is a book vault with fully asynchronous CRUD functionalities and support for data caching. The application uses a Java template called Vaadin, which generates a React-based frontend. Access to the backend is handled through a specific router defined in the template, and access via Postman collections for working with the RESTful API is also possible. The project includes integration tests for the services.
Tools/library: Spring, Java 21, WebFlux, Spring cache, Lombok, Awaitility, Mapstruct, Vaadin Flow (UI Framework), Postman, Logbook
Event Notebook (Android OS - Java)
Software architecture: MVC
Project status: in development (mid stage)
This is notebook for life events.
Features: App themes, CRUD new Event, add location, avatar and priority, start-end time (time and date picker), android notifications, alarm manager, notification channels, custom dialogs, tutorial guide, navigation menu, animated views, REST requests, UI test example with Espresso.
Tools/library: SQLite, Glide, Volley, Espresso, Shimmer, MPAndroidChart, Easypermissions
Spring JPA Rest Data and Swagger-UI Example (Java)
Software architecture: MVC
This is Spring JPA rest project with MySQL database and swagger-ui for testing purpose. CRUD operations on the test data class with validations and custom exception handler.
Tools/library: MySQL, Java, Spring, JPA Data with Rest, JPA Validations, Swagger-UI
Automation tests (Java, Selenium, POM)
1. Login form
2. Motionintegrator workshop
Login form test scenario:
Fill the data to the text fields
Select multiple elements from the check box/dropdown menus
Make assertion for the some of the fields
Motionintegrator workshop test scenario:
Visit the website and select the "Tires change"
Choose a Lublin city from Car Workshops
Select the second car workshop from the list (the second workshop is always to be selected, no matter in what order the workshops load in the list)
Verify visibility of text in "Now open" position
Verify that the workshop rating is equal to 5
Tools: Maven, TestNG, Selenium, WebDriverManager, Page Object Model, headless tests, mobile tests
Link for Login form: https://github.com/balantaim/Automation-test-LoginForm-selenium-Java
Link for Motionintegrator workshop: https://github.com/balantaim/Selenium-Java-Maven-POM-Motionintegrator
Freelance - Comerse website (HTML, CSS, JS)
This website is product for real customers. About technologies I use html, css, Javascript, boostrap framework especially for the navigation bar, AOS timing library, google analitics, google maps api and SEO check free tools. It is very popular and easy to find.
Simple Calculator - available at Play Store (Android OS - Java)
Features: Beautiful design, Working interface, Display mode: portrait/landscape, Resolution: MDPI, HDPI, XHDPI, XXHDPI, XXXHDPI, DayNight mode.
Link for Google Play Store: play.google.com/store/apps/details?id=com.martinatanasov.simplecalculatorv2
Fishing game (Java - MVC)
Software architecture: MVC
This is console game writen in Java.
Features: XML parser for string resources, save/load records in/from .txt file, color messages, game navigation, game score calculation
PostgreSQL - Relational DB example (OS-Linux)
Task 1 "query": Create relational database with records:
Install PostgreSQL on Linux OS - Ubuntu
Login as 'postgres' user and create new database
Create tables with fields based on business diagram
Create logical relationship between tables (CONSTRAINT)
Insert test data
Write some test queries
Task 2 "usersAndSecurity": Increase security by creating roles, users, manage schema privilegies:
Create Create Role and User with password
Asign Role, Database and Schema public to current user
Asign privilegies to the Role
Login with the user and check if Connect, Create, Select, Delete, Alter work correct
Try to select user by email and crypt password and update old password with new value by using crypt() function
Tools: PostgreSQL, Linux OS
Link for PostgreSQL: https://github.com/balantaim/PostgreSQL-Linux-Example
Complete project list: github.com/balantaim