Loading...
This site is the documentation for the Post-Hub demo project
VISIT LIVE PROJECT SITE
Software engineer
I am an experienced web and backend developer specializing in Java, Spring Boot, Security, Rest API, MySQL, React, and JavaScript.
My focus is on delivering high-quality results and ensuring each project achieves its goals effectively. I build efficient and scalable solutions tailored to client needs.
MoreAs an experienced web and backend developer, I specialize in Java, Spring Boot, React, CSS, HTML 5, and JavaScript. My expertise extends to modern technologies such as Appium, Maven, Rest Assured, Node.js, Docker, Kafka, and PostgreSQL.
I am committed to building reliable, scalable, and efficient solutions that meet client needs, with a strong emphasis on performance and security. My aim is to deliver exceptional results that foster innovation and exceed expectations.
The project allows to register new users, create posts and comments, and search for all actions performed by the user.
Tools used: IntelliJ IDEA Ultimate, Java, Spring Boot, JWT, Security, Kafka, Flyway, H2, PostgreSQL.
Deployment is done in several steps, including stopping the container, building the JAR, building the Docker image, and deploying it to the server.
The database is hosted on the ScaleGrid platform, which uses AWS to create and manage the database.
This project was created by me as part of my microservices development training. The main goal is to learn and practice integration of different microservices.
The project implements functionality for user registration, adding posts and comments to them, as well as tracking all user actions via actionLogs, which allows you to analyse activity on the platform.
I use a number of modern tools and technologies for project development. IntelliJ IDEA Ultimate provides a convenient environment for coding.
The main development language is Java, and Spring Boot is used to create microservices. JWT and Spring Security are responsible for security and user authorisation, and Kafka is used for asynchronous communication between microservices.
Flyway is used for database migrations, and as databases I use H2 for local development and PostgreSQL for production.
Image Logs Stage: In this stage, the last 1000 lines of Docker container logs are retrieved from the remote server via an SSH request. This step allows you to capture the current logs of the container before it is stopped and removed.
Docker Stop Stage: At this stage, the current Docker container on the server is stopped and removed. This is necessary to prepare the server for deploying the new version of the application.
Data Check Stage: Here, a check of the current Docker environment on the server is performed, including information about the Docker network, registry, and user data validation. This ensures that all necessary information is correctly set up before starting the build process.
Build JAR Stage: In this stage, the JAR file is built from the application's source code using Maven. This is a critical step, as the JAR file will be included in the Docker image.
Build Docker Stage: After the JAR file is built, a new Docker image of the application is created and then pushed to the Docker Registry. This allows the application version to be ready for deployment on the server.
Deploy Stage: The final stage, where the new Docker image is pulled from the Docker Registry and deployed on the server. The container is started with specified parameters, such as the service port and name, and configured to automatically restart in case of failure.
ScaleGrid provides AWS-based managed databases for high availability and scalability. PostgreSQL or other database can be easily deployed with this platform and backups and monitoring can be managed.
Hosting is provided on a dedicated server that also uses Docker for application deployment. This allows for flexible resource management and maintains high performance of the service.
Your privacy is important to us. This Privacy Policy explains how we collect, use, and safeguard your information when you visit our website.
We do not collect personal information unless you voluntarily provide it through forms or through your interaction with our site. We may collect non-personally identifiable information such as your IP address.
We use the information you provide to enhance your experience on our site, such as displaying project documentation and relevant updates. We do not share your information with third parties except to comply with legal obligations.
Our website may contain links to external sites, such as our project on GitLab. Please be aware that we are not responsible for the privacy practices of those sites, and we encourage you to read their privacy policies.
If you have any questions about this Privacy Policy, feel free to contact us via email at mykola.shchypailo@gmail.com