Focust (pormanteau of focused and locust) is an open-source, issue tracker web application.
Built using the Spring Framework (Java) and React (TypeScript), it is my personal flagship project that I made to showcase my full-stack development skills.
The following table contains more general technologies that apply to the application as a whole rather than being more related to either back-end or front-end servers:
| Technology | Description |
|---|---|
| Docker | used to create images and containers for the needed servers. |
| Jenkins | used to automate the entire build process. |
Here is a brief list of technologies used for the back-end server. If you want more details regarding the back-end server, please read the README.md file in the ./spring directory.
| Back-end Technology | Description |
|---|---|
| Spring Framework | Main back-end framework of choice. Chosen to primarily demonstrate my existing skills in Java. |
| MySQL | Database of choice. Could've easily chosen PostgreSQL |
| Hibernate | object-relational mapping (ORM) tool of choice to ease the creation of the database, as well as ensuring the mocked database has the same structure as the main database. |
| Testcontainers | Used to mock the MySQL database for testing purposes. |
| Mockito | Used to mock specific services that application uses |
Here is a brief list of technologies used for the front-end server. If you want more details regarding the front-end server, please read the README.md file in the ./react directory.
| Front-end Technology | Description |
|---|---|
| React | Used for the front-end server. TypeScript is used to here. |
| Tailwind CSS | contains common CSS utility classes that are agnostic to the overall structure of the application. |
There are multiple ways to build this application from source code:
-
Using Jenkins to automate the build (recommended) - see
./resources/docs/BUILD_USING_JENKINS.mdfor more information. -
Using Docker to build the application - see
./resources/docs/BUILD_USING_DOCKER.mdfor more information.
Focust is licensed under the GNU General Public License v3.0. To learn more, go to https://www.gnu.org/licenses/