Skip to content

TECHNOLOGIES, LIBRARIES AND TOOLS

Igor Suzuki Kira edited this page Dec 5, 2023 · 5 revisions

Technologies, Libraries and Tools

Backend Development

Requirements

To contribute to the backend development of the Cloud Kitchen application, ensure that you have the following prerequisites:

JDK 17: The project is developed using Java 17. Make sure you have the appropriate JDK version installed.

Technologies And Tools

The backend stack utilizes the following technologies and tools:

  • nova funiionlalidade
  • Spring Boot: The application is built using the Spring Boot framework.
  • Spring Boot Starter Data JPA: For simplified data access using the Java Persistence API.
  • Spring Boot Starter Web: For building RESTful APIs and web applications.
  • iText PDF: A library for creating and manipulating PDF documents.
  • Jackson Databind: Used for JSON data-binding.
  • Spring Boot DevTools: For automatic application restarts during development.
  • Oracle JDBC Driver (ojdbc8 and ojdbc11-production): To connect to the Oracle Database.
  • Oracle Database Security Libraries (oraclepki, osdt_cert, osdt_core): Necessary for secure database communication.
  • Springdoc OpenAPI: Integration for API documentation generation using OpenAPI.

Build and Dependency Management

The project uses Maven for build and dependency management. Ensure that Maven is installed on your development environment.

Testing

The backend is thoroughly tested using JUnit, and code coverage is assessed using the JaCoCo plugin. Developers are encouraged to write unit tests for their code contributions.

Continuous Integration (CI)

The project adopts the Gitflow strategy for branch management. Continuous Integration is implemented using GitHub Actions. Each pull request triggers a CI pipeline, ensuring that the proposed changes pass all checks before being merged into the develop branch.

Deployment

The deployment process involves the generation of a deployable artifact (jar) through the CI pipeline. This artifact is then transferred to the production server, where a subsequent job manages the deployment process.


Frontend Development

Requirements

For frontend development on the Cloud Kitchen application, ensure that you have the following prerequisites:

Node.js: The frontend is developed using Vue.js, and Node.js is required for package management.

Technologies and Tools

The frontend stack includes the following technologies and tools:

  • Vue.js: The JavaScript framework used for building the user interface.
  • Vite: The build tool that powers the frontend development workflow.
  • Axios: A promise-based HTTP client for making API requests.
  • Chart.js: A JavaScript library for creating interactive charts.
  • FontAwesome: For including scalable vector icons in the application.
  • Date-fns: A library for manipulating JavaScript dates.
  • PrimeVue: A Vue UI Component Library.
  • Vue-Router: The official router for Vue.js applications.
  • Pinia: The state management solution for Vue.js applications.
  • Vuetify: A Vue UI library with a set of Material Design components.
  • Vue3-datepicker: A date picker component for Vue.js applications.
  • Chartjs-plugin-datalabels: A Chart.js plugin for displaying data labels.

Development Environment Setup

To set up your development environment, run the following commands in the project directory:

Install dependencies

npm install

Compiles and hot-reloads for development

npm run dev



Testing

The frontend includes unit tests written using Jest and end-to-end tests using Vitest. Developers are encouraged to write tests for their components to ensure the reliability of the frontend code.

Continuous Integration (CI)

Similar to the backend, the frontend development also follows the Gitflow strategy. GitHub Actions is used for continuous integration, ensuring that each pull request is validated before being merged.