This project is an Internal Registration System designed initially to register any kind of product for any type of store. The system provides functionalities for the system admin or store owner to view comprehensive details of the store, such as:
- All the details of products currently and previously in the store.
- Managing the store balance.
- Managing all interested clients.
- Managing employee data and information.
- Setting and tracking expenses.
- And many other functions.
Technologies Used:
Backend
: JavaAPI
: Spring Boot, JPA Repository and RESTful servicesDatabase
: MySQLFrontend
: ReactCloud Application/deploy
: AWSVersion Control
: Git and GitHubBuild and Configuration Management
: Gradle
This project are licensed under the GNU GPL v3.0.
Β© Jhosseph Pathryck de Souza Gonzalez. All rights reserved.
https://www.figma.com/board/f2Y97vUhj2KYLVTs059Fxr/Untitled?node-id=921-517&t=a1ghsiciH1sNn11u-0
The following environment variables need to be set for the application to run properly:
DATABASE_URL
: The JDBC URL of the database.DATABASE_USERNAME
: The database username.DATABASE_PASSWORD
: The database password.
Example:
export DATABASE_URL="jdbc:mysql://localhost:3306/car_store"
export DATABASE_USERNAME="root"
export DATABASE_PASSWORD="your_secure_password"
IRSystem$
βββ build
βΒ Β βββ bootJarMainClassName
βΒ Β βββ bootRunMainClassName
βΒ Β βββ bootScripts
βΒ Β βΒ Β βββ IRSystem
βΒ Β βΒ Β βββ IRSystem.bat
βΒ Β βββ classes
βΒ Β βΒ Β βββ java
βΒ Β βΒ Β βΒ Β βββ main
βΒ Β βΒ Β βΒ Β βΒ Β βββ com
βΒ Β βΒ Β βΒ Β βΒ Β βββ jhogo
βΒ Β βΒ Β βΒ Β βΒ Β βββ irsystem
βΒ Β βΒ Β βΒ Β βΒ Β βββ Application.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ common
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ Person.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ config
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ DataSourceConfig.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ controller
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ EmployeeController.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ FinanceController.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ StoreController.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ UserController.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ VehicleController.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ dto
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ EmployeeDTO.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ FinanceDTO.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ StoreDTO.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ UserDTO.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ VehicleDTO.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ model
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ Employee.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ Finance.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ Store.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ User.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ Vehicle.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ repository
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ EmployeeDAO.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ FinanceDAO.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ StoreDAO.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ UserDAO.class
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ VehicleDAO.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ service
βΒ Β βΒ Β βΒ Β βΒ Β βββ EmployeeService.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ FinanceService.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ StoreService.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ UserService.class
βΒ Β βΒ Β βΒ Β βΒ Β βββ VehicleService.class
βΒ Β βΒ Β βΒ Β βββ test
βΒ Β βΒ Β βΒ Β βββ com
βΒ Β βΒ Β βΒ Β βββ jhogo
βΒ Β βΒ Β βΒ Β βββ irsystem
βΒ Β βΒ Β βΒ Β βββ store
βΒ Β βΒ Β βΒ Β βΒ Β βββ StoreServiceTest.class
βΒ Β βΒ Β βΒ Β βββ vehicle
βΒ Β βΒ Β βΒ Β βββ VehicleDAOIntegrationTest.class
βΒ Β βΒ Β βΒ Β βββ VehicleServiceTest.class
βΒ Β βΒ Β βββ kotlin
βΒ Β βΒ Β βββ main
βΒ Β βΒ Β βΒ Β βββ META-INF
βΒ Β βΒ Β βΒ Β βββ IRSystem.kotlin_module
βΒ Β βΒ Β βββ test
βΒ Β βββ distributions
βΒ Β βΒ Β βββ IRSystem-0.0.1-SNAPSHOT.tar
βΒ Β βΒ Β βββ IRSystem-0.0.1-SNAPSHOT.zip
βΒ Β βΒ Β βββ IRSystem-boot-0.0.1-SNAPSHOT.tar
βΒ Β βΒ Β βββ IRSystem-boot-0.0.1-SNAPSHOT.zip
βΒ Β βββ generated
βΒ Β βΒ Β βββ sources
βΒ Β βΒ Β βββ annotationProcessor
βΒ Β βΒ Β βΒ Β βββ java
βΒ Β βΒ Β βΒ Β βββ main
βΒ Β βΒ Β βΒ Β βββ test
βΒ Β βΒ Β βββ headers
βΒ Β βΒ Β βββ java
βΒ Β βΒ Β βββ main
βΒ Β βΒ Β βββ test
βΒ Β βββ kotlin
βΒ Β βΒ Β βββ compileKotlin
βΒ Β βΒ Β βΒ Β βββ cacheable
βΒ Β βΒ Β βΒ Β βΒ Β βββ caches-jvm
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ inputs
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-output.tab
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-output.tab_i
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-output.tab_i.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-output.tab.keystream
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-output.tab.keystream.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-output.tab.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-output.tab.values.at
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ jvm
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ kotlin
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-attributes.tab
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-attributes.tab_i
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-attributes.tab_i.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-attributes.tab.keystream
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-attributes.tab.keystream.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-attributes.tab.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-attributes.tab.values.at
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-fq-name-to-source.tab
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-fq-name-to-source.tab_i
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-fq-name-to-source.tab_i.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-fq-name-to-source.tab.keystream
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-fq-name-to-source.tab.keystream.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-fq-name-to-source.tab.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ class-fq-name-to-source.tab.values.at
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ java-sources-proto-map.tab
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ java-sources-proto-map.tab_i
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ java-sources-proto-map.tab_i.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ java-sources-proto-map.tab.keystream
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ java-sources-proto-map.tab.keystream.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ java-sources-proto-map.tab.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ java-sources-proto-map.tab.values.at
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ proto.tab
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ proto.tab_i
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ proto.tab_i.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ proto.tab.keystream
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ proto.tab.keystream.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ proto.tab.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ proto.tab.values.at
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-classes.tab
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-classes.tab_i
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-classes.tab_i.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-classes.tab.keystream
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-classes.tab.keystream.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-classes.tab.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ source-to-classes.tab.values.at
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ subtypes.tab
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ subtypes.tab_i
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ subtypes.tab_i.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ subtypes.tab.keystream
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ subtypes.tab.keystream.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ subtypes.tab.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ subtypes.tab.values.at
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ supertypes.tab
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ supertypes.tab_i
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ supertypes.tab_i.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ supertypes.tab.keystream
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ supertypes.tab.keystream.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ supertypes.tab.len
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ supertypes.tab.values.at
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ lookups
βΒ Β βΒ Β βΒ Β βΒ Β βββ last-build.bin
βΒ Β βΒ Β βΒ Β βββ localstate
βΒ Β βΒ Β βΒ Β βββ build-history.bin
βΒ Β βΒ Β βββ compileTestKotlin
βΒ Β βΒ Β βΒ Β βββ cacheable
βΒ Β βΒ Β βΒ Β βΒ Β βββ caches-jvm
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ inputs
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ jvm
βΒ Β βΒ Β βΒ Β βΒ Β βΒ Β βββ lookups
βΒ Β βΒ Β βΒ Β βΒ Β βββ last-build.bin
βΒ Β βΒ Β βΒ Β βββ localstate
βΒ Β βΒ Β βΒ Β βββ build-history.bin
βΒ Β βΒ Β βββ IRSystem001SNAPSHOTplainjar-classes.txt
βΒ Β βΒ Β βββ sessions
βΒ Β βββ libs
βΒ Β βΒ Β βββ IRSystem-0.0.1-SNAPSHOT.jar
βΒ Β βΒ Β βββ IRSystem-0.0.1-SNAPSHOT-plain.jar
βΒ Β βββ reports
βΒ Β βΒ Β βββ tests
βΒ Β βΒ Β βββ test
βΒ Β βΒ Β βββ classes
βΒ Β βΒ Β βΒ Β βββ com.jhogo.irsystem.store.StoreServiceTest.html
βΒ Β βΒ Β βββ css
βΒ Β βΒ Β βΒ Β βββ base-style.css
βΒ Β βΒ Β βΒ Β βββ style.css
βΒ Β βΒ Β βββ index.html
βΒ Β βΒ Β βββ js
βΒ Β βΒ Β βΒ Β βββ report.js
βΒ Β βΒ Β βββ packages
βΒ Β βΒ Β βββ com.jhogo.irsystem.store.html
βΒ Β βββ resources
βΒ Β βΒ Β βββ main
βΒ Β βΒ Β βΒ Β βββ application.yml
βΒ Β βΒ Β βΒ Β βββ db
βΒ Β βΒ Β βΒ Β βββ migration
βΒ Β βΒ Β βΒ Β βββ V1__Initial_schema.sql
βΒ Β βΒ Β βΒ Β βββ V2__Add_new_employee_fields.sql
βΒ Β βΒ Β βΒ Β βββ V3__Update_schema_with_relationship_fields.sql
βΒ Β βΒ Β βΒ Β βββ V4__Update_schema_with_user_table.sql
βΒ Β βΒ Β βΒ Β βββ V5__Update_schema_with_wage_to_employee.sql
βΒ Β βΒ Β βΒ Β βββ V6__Create_finance_table.sql
βΒ Β βΒ Β βββ test
βΒ Β βΒ Β βββ application-test.properties
βΒ Β βββ scripts
βΒ Β βΒ Β βββ IRSystem
βΒ Β βΒ Β βββ IRSystem.bat
βΒ Β βββ snapshot
βΒ Β βΒ Β βββ kotlin
βΒ Β βββ test-results
βΒ Β βΒ Β βββ test
βΒ Β βΒ Β βββ binary
βΒ Β βΒ Β βΒ Β βββ output.bin
βΒ Β βΒ Β βΒ Β βββ output.bin.idx
βΒ Β βΒ Β βΒ Β βββ results.bin
βΒ Β βΒ Β βββ TEST-com.jhogo.irsystem.store.StoreServiceTest.xml
βΒ Β βββ tmp
βΒ Β βββ bootJar
βΒ Β βΒ Β βββ MANIFEST.MF
βΒ Β βββ compileJava
βΒ Β βΒ Β βββ compileTransaction
βΒ Β βΒ Β βΒ Β βββ backup-dir
βΒ Β βΒ Β βΒ Β βββ stash-dir
βΒ Β βΒ Β βΒ Β βββ DataSourceConfig.class.uniqueId12
βΒ Β βΒ Β βΒ Β βββ EmployeeController.class.uniqueId11
βΒ Β βΒ Β βΒ Β βββ EmployeeDAO.class.uniqueId10
βΒ Β βΒ Β βΒ Β βββ EmployeeService.class.uniqueId4
βΒ Β βΒ Β βΒ Β βββ FinanceController.class.uniqueId7
βΒ Β βΒ Β βΒ Β βββ FinanceDTO.class.uniqueId3
βΒ Β βΒ Β βΒ Β βββ StoreController.class.uniqueId6
βΒ Β βΒ Β βΒ Β βββ StoreService.class.uniqueId2
βΒ Β βΒ Β βΒ Β βββ UserController.class.uniqueId5
βΒ Β βΒ Β βΒ Β βββ UserDAO.class.uniqueId0
βΒ Β βΒ Β βΒ Β βββ UserService.class.uniqueId9
βΒ Β βΒ Β βΒ Β βββ VehicleController.class.uniqueId1
βΒ Β βΒ Β βΒ Β βββ VehicleDAO.class.uniqueId13
βΒ Β βΒ Β βΒ Β βββ VehicleService.class.uniqueId8
βΒ Β βΒ Β βββ previous-compilation-data.bin
βΒ Β βββ compileTestJava
βΒ Β βΒ Β βββ compileTransaction
βΒ Β βΒ Β βΒ Β βββ backup-dir
βΒ Β βΒ Β βΒ Β βββ stash-dir
βΒ Β βΒ Β βββ previous-compilation-data.bin
βΒ Β βββ jar
βΒ Β βΒ Β βββ MANIFEST.MF
βΒ Β βββ test
βββ build.gradle.kts
βββ car_store_schema.sql
βββ gradle
βΒ Β βββ libs.versions.toml
βΒ Β βββ wrapper
βΒ Β βββ gradle-wrapper.jar
βΒ Β βββ gradle-wrapper.properties
βββ gradlew
βββ gradlew.bat
βββ LICENSE.txt
βββ Menu.java
βββ README.md
βββ settings.gradle.kts
βββ src
βββ main
βΒ Β βββ java
βΒ Β βΒ Β βββ com
βΒ Β βΒ Β βββ jhogo
βΒ Β βΒ Β βββ irsystem
βΒ Β βΒ Β βββ Application.java
βΒ Β βΒ Β βββ common
βΒ Β βΒ Β βΒ Β βββ Person.java
βΒ Β βΒ Β βΒ Β βββ vehicle
βΒ Β βΒ Β βΒ Β βββ bike
βΒ Β βΒ Β βΒ Β βββ car
βΒ Β βΒ Β βΒ Β βββ CarManager.java
βΒ Β βΒ Β βββ config
βΒ Β βΒ Β βΒ Β βββ DataSourceConfig.java
βΒ Β βΒ Β βββ controller
βΒ Β βΒ Β βΒ Β βββ EmployeeController.java
βΒ Β βΒ Β βΒ Β βββ FinanceController.java
βΒ Β βΒ Β βΒ Β βββ StoreController.java
βΒ Β βΒ Β βΒ Β βββ UserController.java
βΒ Β βΒ Β βΒ Β βββ VehicleController.java
βΒ Β βΒ Β βββ dto
βΒ Β βΒ Β βΒ Β βββ EmployeeDTO.java
βΒ Β βΒ Β βΒ Β βββ FinanceDTO.java
βΒ Β βΒ Β βΒ Β βββ StoreDTO.java
βΒ Β βΒ Β βΒ Β βββ UserDTO.java
βΒ Β βΒ Β βΒ Β βββ VehicleDTO.java
βΒ Β βΒ Β βββ model
βΒ Β βΒ Β βΒ Β βββ Employee.java
βΒ Β βΒ Β βΒ Β βββ Finance.java
βΒ Β βΒ Β βΒ Β βββ Store.java
βΒ Β βΒ Β βΒ Β βββ User.java
βΒ Β βΒ Β βΒ Β βββ Vehicle.java
βΒ Β βΒ Β βββ repository
βΒ Β βΒ Β βΒ Β βββ EmployeeDAO.java
βΒ Β βΒ Β βΒ Β βββ FinanceDAO.java
βΒ Β βΒ Β βΒ Β βββ StoreDAO.java
βΒ Β βΒ Β βΒ Β βββ UserDAO.java
βΒ Β βΒ Β βΒ Β βββ VehicleDAO.java
βΒ Β βΒ Β βββ service
βΒ Β βΒ Β βΒ Β βββ EmployeeService.java
βΒ Β βΒ Β βΒ Β βββ FinanceService.java
βΒ Β βΒ Β βΒ Β βββ StoreService.java
βΒ Β βΒ Β βΒ Β βββ UserService.java
βΒ Β βΒ Β βΒ Β βββ VehicleService.java
βΒ Β βΒ Β βββ util
βΒ Β βββ kotlin
βΒ Β βΒ Β βββ com
βΒ Β βΒ Β βββ jhogo
βΒ Β βΒ Β βββ irsystem
βΒ Β βΒ Β βββ Application2.kt
βΒ Β βββ resources
βΒ Β βββ application.yml
βΒ Β βββ db
βΒ Β βββ migration
βΒ Β βββ V1__Initial_schema.sql
βΒ Β βββ V2__Add_new_employee_fields.sql
βΒ Β βββ V3__Update_schema_with_relationship_fields.sql
βΒ Β βββ V4__Update_schema_with_user_table.sql
βΒ Β βββ V5__Update_schema_with_wage_to_employee.sql
βΒ Β βββ V6__Create_finance_table.sql
βββ test
βββ java
βΒ Β βββ com
βΒ Β βββ jhogo
βΒ Β βββ irsystem
βΒ Β βββ CarDAOIntegrationTest.java
βΒ Β βββ CarServiceTest.java
βΒ Β βββ employee
βΒ Β βββ finance
βΒ Β βββ store
βΒ Β βΒ Β βββ StoreServiceTest.java
βΒ Β βββ user
βΒ Β βββ vehicle
βΒ Β βββ VehicleDAOIntegrationTest.java
βΒ Β βββ VehicleServiceTest.java
βββ resources
βββ application-test.properties
121 directories, 195 files
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
application
id("org.springframework.boot") version "2.6.6"
id("io.spring.dependency-management") version "1.0.11.RELEASE"
kotlin("jvm") version "1.6.21"
kotlin("plugin.spring") version "1.6.21"
id("org.flywaydb.flyway") version "8.5.11"
}
group = "com.jhogo"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_11
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
runtimeOnly("mysql:mysql-connector-java")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.mockito:mockito-core")
implementation("org.flywaydb:flyway-core")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
testImplementation("org.junit.jupiter:junit-jupiter-api")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}
application {
mainClass.set("com.jhogo.irsystem.ApplicationKt")
}
sourceSets {
main {
java {
setSrcDirs(listOf("src/main/java"))
}
}
test {
java {
setSrcDirs(listOf("src/test/java"))
}
}
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "11"
}
}
tasks.named<Test>("test") {
useJUnitPlatform()
}
flyway {
url = System.getenv("DATABASE_URL") ?: "jdbc:mysql://localhost:3306/car_store"
user = System.getenv("DATABASE_USERNAME") ?: "root"
password = System.getenv("DATABASE_PASSWORD") ?: "password"
}
/*
* This file was generated by the Gradle 'init' task.
*
* The settings file is used to specify which projects to include in your build.
* For more detailed information on multi-project builds, please refer to https://docs.gradle.org/8.7/userguide/multi_project_builds.html in the Gradle documentation.
*/
plugins {
// Apply the foojay-resolver plugin to allow automatic download of JDKs
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
}
rootProject.name = "IRSystem"
include("app")
V1__Initial_schema.sql
CREATE TABLE Store (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
address VARCHAR(255)
);
CREATE TABLE Car (
id INT PRIMARY KEY AUTO_INCREMENT,
model VARCHAR(100),
brand VARCHAR(100),
chassis VARCHAR(100),
manufactureYear INT,
saleValue DECIMAL(10, 2),
purchaseValue DECIMAL(10, 2),
inStore BOOLEAN,
store_id INT,
FOREIGN KEY (store_id) REFERENCES Store(id)
);
CREATE TABLE Client (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
contact VARCHAR(100),
store_id INT,
FOREIGN KEY (store_id) REFERENCES Store(id)
);
CREATE TABLE Employee (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
role VARCHAR(50),
address VARCHAR(200),
username VARCHAR(100),
password VARCHAR(100),
birthday DATE,
store_id INT,
FOREIGN KEY (store_id) REFERENCES Store(id)
);
- Project Structure: Ensure the directory structure is correct and follows conventions.
- Build Script: Properly configure
build.gradle.kts
andsettings.gradle.kts
for Gradle with Kotlin DSL. - Flyway Configuration: Use environment variables to manage sensitive data such as database URLs and credentials.