Techstack
Frontend
For the implementation of our frontend infrastructure, we employed the use of WebComponents based on the polymer project LitElement (currently known as Lit) and developed the entire system utilizing TypeScript, JavaScript, CSS and HTML. To ensure high quality, we conducted testing through the utilization of Karma and Jasmine, linted our project with ESLint, and evaluated coverage with Istanbul. As our integrated development environments, we employed the use of VSCode and IntelliJ, and accomplished bundling of our project through the implementation of WebPack with PostCSS as a post processor.
As component libraries, we favored Material Design WebComponents, which we augmented with additional WebComponents from Weightless, Vaadin, OpenUI5. Additionally, we constructed some WebComponents in-house. In terms of libraries, we employed the use of Lodash, Moment.js and Hammer.js and managed the entirety of our project through npm.
Backend
In the implementation of our backend infrastructure, we employed the use of the Spring framework, heavily relying upon Spring Boot, and developed the entire system utilizing the Java programming language. Quality assurance and testing were conducted through the utilization of Postman for API testing, Jacoco for coverage analysis, SonarLint for linting, and Swagger for the description of our REST API. Build management was accomplished through the employment of Maven and Gradle. Our database management system of choice was MySQL, with Hibernate serving as the JPA driver, and images were stored on Imgur. Inter-service communication was facilitated through the implementation of RabbitMQ for event messaging. IntelliJ and Android Studio were utilized as our integrated development environments. Additionally, we incorporated the incorporation of the Lombok library to minimize boilerplate code and maintain the leanness of our services.