https://github.com/arthurvbs/canadel
πͺ A Canadel product manager
https://github.com/arthurvbs/canadel
crud gradlew h2 java junit spring typescript vitest vue web
Last synced: about 2 months ago
JSON representation
πͺ A Canadel product manager
- Host: GitHub
- URL: https://github.com/arthurvbs/canadel
- Owner: ArthurVBS
- Created: 2025-06-17T02:56:59.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-06-19T23:17:44.000Z (about 1 year ago)
- Last Synced: 2025-06-19T23:26:17.622Z (about 1 year ago)
- Topics: crud, gradlew, h2, java, junit, spring, typescript, vitest, vue, web
- Language: TypeScript
- Homepage:
- Size: 511 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Canadel
Β
Β
Β
Β
Β
Β
Β
## β¨ About the project:
- πͺ The project is a **Product Manager for Canadel.inc**.
- π§ͺ The project has unit tests for backend and frontend and allow the developer see its coverage.
- π§Ή The project has linters for backend and frontend to validate the quality of the code and format it.
- π³ The project uses CI-CD to validate the Merge Requests with pipelines in the GitHub actions.
- π§βπ» The project was two approaches:
- Java 17 + Spring in the backend and Typescript + Vue 3 in the frontend.
- C# + .NET 8 in the backend and Typescript + Vue 3 in the frontend.
## π» Project status:
- Finished project βοΈ
## π Technologies:
- Backend:
- Java Ecosystem
- **Java**
- **Spring**
- **Gradlew**
- Spotless
- Lombok
- H2 Database
- Jacoco Reporter
- C# Ecosystem
- **C#**
- **.NET**
- Xunit
- SQLite
- Frontend:
- **TypeScript**
- **Vue**
- **Yarn** or NPM
- Node
- CSS
- Vuetify
- Vuex
- Vite
- Vitest
- General:
- **Docker Compose**
- Makefile
## π Features:
- The application is a CRUD product manager:
- Allow user create a product with name, description and its price.
- Allow user read all products data: ID, name, description, price and createdAt.
- Allow user read a specific product data based in its ID. (Backend endpoint only).
- Allow user update a product by its ID with name, description and its price.
- Allow user delete a product by its ID.
- The application validates the CRUD in both connection parts (frontend and backend).
- Do not allow to create or to update with empty name, empty description or zero price.
- Do not allow to read by id, to update by id or to delete by id using an invalid ID.
- The application is accessible for the most used screen sizes:
- Allow user access the application by web.
- Allow user access the application by mobile.
- The application stores the data in a database.
- The application holds the information in frontend using state.
## βοΈ Prerequisites:
### πββοΈββ‘οΈ Run
- General:
- Docker Compose
- Makefile
### π§βπ» Develop
- Backend:
- Java Ecosystem
- Java 17
- Gradle 8
- C# Ecosystem
- C#
- .NET 8
- Frontend:
- Node 20
- Yarn
- General:
- Makefile
- Docker Compose
## π How to run the application?
### πββοΈββ‘οΈ Run
- Download the ZIP or Clone the application on your machine;
- Open one CMD terminal in the root of the project folder,
- Run `make run-docker-compose-dotnet` or `make run-docker-compose-java`,
- Access the application through `http://localhost:5173`.
### π» Develop
- Clone the application on your machine;
- Open two CMD terminal in the root of the project folder,
- The first terminal access one of the backend folders: ,
- To use Java Ecosystem: `cd backend-java`
- Install gradle modules: `./gradlew`,
- Finally, start a localhost: `./gradlew bootRun`,
- The available endpoint: `http://localhost:12000`.
- To use C# Ecosystem: `cd backend-dotnet`
- Install modules: `dotnet build`,
- Finally, start a localhost: `dotnet run --project ./Canadel/Canadel.csproj`,
- The available endpoint: `http://localhost:12000`.
- The second terminal access the frontend folder: `cd frontend`,
- Install node modules: `yarn` or `npm install`,
- Finally, start a localhost: `yarn dev` or `npm run dev`,
- The available endpoint: `http://localhost:5173`.
- Access the application through `http://localhost:5173`.
## π§ͺ How to run the tests?
### πββοΈββ‘οΈJust Run
- Backend:
- Open the CMD terminal,
- Access the backend folder,
- To use Java Ecosystem: `cd backend-java`
- Install gradle modules: `./gradlew`,
- Finally run the tests: `./gradlew test`.
- To use C# Ecosystem: `cd backend-dotnet`
- Build project: `dotnet build`,
- Finally run the tests: `dotnet test`.
- Frontend:
- Open the CMD terminal,
- Access the frontend folder: `cd frontend`,
- Install node modules: `yarn` or `npm install`,
- Finally, run the test: `yarn test` or `npm run test`.
### π Run with Coverage
- Backend
- Open the CMD terminal,
- Access the backend folder `cd backend`
- To use Java Ecosystem: `cd backend-java`
- Install gradle modules: `./gradlew`
- Finally run the tests with coverage: `./gradlew test jacocoTestCoverageVerification`,
- Open the `backend-java/build/reports/jacoco/test/html/index.html` file in browser.
- To use C# Ecosystem: `cd backend-dotnet`
- Build project: `dotnet build`,
- Install globally the report generator tool: `dotnet tool install -g dotnet-reportgenerator-globaltool`
- Run the tests with the coverage result: `dotnet test --collect:"XPlat Code Coverage"`
- Convert the coverage to html: `reportgenerator -reports:"Canadel.Tests/TestResults/**/coverage.cobertura.xml" -targetdir:"coverage-report" -reporttypes:Html`
- `or`
- Convert the coverage to html: `reportgenerator.exe -reports:"Canadel.Tests\TestResults\**\coverage.cobertura.xml" -targetdir:"coverage-report" -reporttypes:Html`
- Open the `backend-dotnet/coverage-report/index.html` file in browser.
- Frontend
- Open the CMD terminal,
- Access the frontend folder: `cd frontend`
- Install node modules: `yarn` or `npm install`,
- Run the test with coverage: `yarn test:coverage` or `npm run test:coverage`,
- Open the `frontend/coverage/index.html` file in browser.
π¨π½βπ» Author
Made with ArthurVBS's Readme Generator