Built with Java & React
Crafted with love, the Spring Boot Full Stack Appication is a secure Entrepise Resource Planning system the simplfies the task of managing human resources in an institution. Paywork, printing, reprinting, to collect and correct misforms on user collected information, the lookup for the users and eventually deleting them by the archeivers. However this application simplifies the creation, deletion, update and reading resources with the system.
Accessible through the web.
A few of the things you can do with the application:
- View all saved persons.
- Update person's information.
- Create a new entry.
- Delete a person.
- And also authenticate or register with the system.
-
This is a JavaScript library created by Facebook, a User Interface (UI) library and a tool for building UI components. This was used to create a number of components on the interface viz the buttons, drawers, and maniplating a couple of CSS properties listed but not limited to color, fonts, directions, sizes and many others.
-
Vite (French word for "quick", pronounced /vit/, like "veet") is a build tool that aims to provide a faster and leaner development experience for modern web projects. It consists of two major parts; A dev server that provides rich feature enhancements over native ES modules, for example extremely fast Hot Module Replacement (HMR). A build command that bundles your code with Rollup, pre-configured to output highly optimized static assets for production. This was used to provide ready servers for the frontend react development with faster loading and automatic changes reflections.
-
This was used to claim different templates like predesigned buttons, drawers, navigation views and extra.
-
This is a general purpose, strongly typed, and object oriented programming languages used for creating stand alone and servelets. This was used to create the base (stack) of the application simply creating the models to provided the foundation for application construction.
-
This is an extension of the Spring framework, Java annotation and dependency injection framework that provides a number of different applications in form of dependencies injectable into a basic Java application for functionality enchancements and faster development with simple configurations. Some of its used applications in this project are described below;
-
This simply stands for Java Database Connectivity, an application / dependency that provides connectivity and interaction with the database through writing SQL statements in Java code.
-
This is stands for Java Persistance Api which is an application with in Spring Boot that enables and manages interaction with the database through writing english-like statements using Hibernate in the background for data persistance.
-
Spring Web
This enables the creation of REST application as its the case with this application and uses Tomcat as the embedded web service for loading the Json / Xml at the given endpoint of the application.
-
This is a testing class used in the application for writing unit tests. Checking different methods for example updating, deleting, creating and reading entities.
-
This is a Java (and Ruby) maven repository used to porvide fake data for new applications majorly used for writing tests providing data about different entities like persons, vehicles, addresses and locations and many others.
-
This is an open source framewok that provides isolated, throwaway and light weigth instances of different applications like databases, web browers or anyother than runns in containers for running tests. This was used for running the test individual / unit tests.
-
This is a database migration tool which simplifies the taask of applying database modifications other than the tedious process of backing up, recreation and restoration of the database records.
-
This is a database management system which supervises relational databases and operations performed. This is the backbone of the application serving as the repository of the records saved.
-
This is a library that provides annotations used to generate boilerplate code, simplifying the tedious tasks like creating toString methods, constructors, hashCode methods and many others.
-
This is a Java library used to secure the application endpoints enabling the installation of different authentication methods lik basic authentication, name and password authentication, token based authentication and many others. In specificity, Json Web Token was used to taransfer the authentication credentials esnuring safety, integrity and validity.
-
-
This is a Maven plugin used to execute intergration tests which involved the interoperatability of different parts of the application.
-
This is a Java application build tool used to construct executable
.waror.jarfiles for distribution. -
This is a Docker build tool used to automate the containerization and deployment of the docker image with no need of writing docker files for the application.
-
This is an open source collaboration tool that enables developers to contribute on a given project hosted on a remote repository on different platforms like Github, GitLab and many others. This is incorporated into an application locally which monitors changes and makes updates, it also serves different functionalities like continous intergration and delivery of code through the workflows.
-
This acromny stands for Amazon Web Services which is a software as a platform providing a couple of different products and some of the used ones in the application are given below;
-
EBS
This stands for Elastic Bean Stalk a service that manages the entire deployment process of the application having no need of much configuration as it requires a few clikcs to get the application up and running.
-
ECS
This stands for Elastic Container Service, which is also an Amazon service used to enable spinning containers in the AWS infrastructure.
-
RDS
This represents Relational Database System which is an Amazon service for simple setting up and operating the relational databases. It provides support (drivers) for different database management systems namely Postgres (used), MySQL and many others.
-
EC2
This is an other Amazon service that provides auto scable compute services running virtually with the ECS to ensure robust and effective traffic manageent.
-
This is a containerisation technology that enables the packaging of application into docker images onto which platform indepent containers can ne run.
Choice entirely to send us feedback on Twitter / X, Mail else file an issue.
If interested in exploring the flow and usage of the applicatio, can be accessed from here. However, while wishing to run it locally, follow the below steps;
-
Milestone 1 Install Postgres starting from version 15.0++. Install Docker on your machine.
-
Milestone 2 Open the CMD and run
docker pull postgresto pull the postgres image from docker. Rundocker pull isaacwhiz/whiz-apito pull the Whiz Api image from docker. Rundocker pull isaacwhiz/whiz-react14to pull the frontend image from docker. Open a file editor and paste the below configuration (keep the alignment as is) then save the file as adocker-compose.yamlfile.
services:
db:
container_name: post
image: postgres:15.4
environment:
POSTGRES_USER: whiz
POSTGRES_PASSWORD: isaacwhiz
PGDATA: /data/full_stack
volumes:
- db:/data/full_stack
ports:
- "2001:5432"
networks:
- db
restart: unless-stopped
isaacwhiz-api:
container_name: whiz-api
image: isaacwhiz/whiz-api
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/full_stack
ports:
- "8088:8080"
networks:
- db
depends_on:
- db
restart: unless-stopped
command:
- --spring.datasource.url=jdbc:postgresql://db:5432/full_stack
isaacwhiz-react:
container_name: frontend
image: isaacwhiz/whiz-react14
build:
context: frontend/react
args:
api_base_url: http://localhost:8088
ports:
- "4000:5173"
depends_on:
- isaacwhiz-api
restart: unless-stopped
networks:
db:
driver: bridge
volumes:
db:
Note: If your configuration is distorted, use the file here and make a few adjustments to match the above.
Note: You can save the above file as .yaml or .yml.
Locate where you saved the above .yaml following codes.
docker-compose up
If you saved yor docker file with a different name then run docker-compose -f custom-compose-file.yml up
Navigate to the web browser and run localhost:4000 in the search bar and press enter.
Viola! Your app is up and running.
- Amigoscode as the mentor.
- AWS for free tier services.
- Emojis are taken from here.


