$19.99
Description
This is a Java-based backend application for an App Store, built using Spring Boot. The application utilizes Vaadin for building a user-friendly admin interface and Spring Repository for database operations. It has placeholder configuration for two databases that you could set up with minimal effort: MariaDB and H2 Database.
Features
- CRUD Operations: The application provides Create, Read, Update, and Delete (CRUD) operations for managing apps in the store.
- Admin Interface: A user-friendly interface built with Vaadin for administrators to interact with the app store.
- REST Endpoints: Simple REST endpoints are provided for publicly accessing apps, allowing users to retrieve app information.
Technologies Used
- Spring Boot: The framework used for building the backend application.
- Vaadin: Used for building a user-friendly admin interface.
- Spring Repository: For database operations and managing data access.
- MariaDB and H2 Database: Supported databases for storing app information.
Configuration
- The app is build using Maven.
- For not the build config is as Web archive (WAR), but it could be changed at any time
MariaDB Configuration
To configure the application to use MariaDB, add the following properties to your application.properties
file:
spring.datasource.url=jdbc:mariadb://localhost:3306/appstore
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
H2 Database Configuration
To configure the application to use H2 Database, add the following properties to your application.properties
file:
spring.datasource.url=jdbc:h2:mem:testdb
spring.jpa.hibernate.ddl-auto=update
REST Endpoints
The following REST endpoints are provided for publicly accessing apps:
- GET /apps?search={your_query}: Retrieves a list of all available apps.
Admin Interface
The admin interface is built using Vaadin and provides the following features:
- App List: A table displaying all available apps.
- Create App: A form for creating new apps.
- Update App: A form for updating existing app information.
- Delete App: A button for deleting an app.
CRUD Operations
The following CRUD operations are supported:
- Create App: Creates a new app with the provided information.
- Read Apps: Retrieves a page of your entered apps.
- Update App: Updates existing app information.
- Delete App: Deletes an app by its ID.
Example Use Cases
- Admin User: An admin user logs in to the app store and uses the admin interface to create, update, or delete apps.
- Public User: A public user accesses the app store and uses the REST endpoints to retrieve information about available apps. The idea is to be used by another PoC: https://programtom.com/dev/product/flutter-web-desktop-user-interface-proof-of-concept/
Code Structure
The code is structured into the following packages:
- com.programtom.application_center_app.rest: Contains REST endpoint controllers.
- com.application_center_app.models: Defines app-related data models.
- com.application_center_app.repositories: Provides Spring Repository implementations for database operations.
- com.application_center_app.services: Defines business logic services for app management.
- com.application_center_app.views: Contains Vaadin UI components and views.
This app integrates (and requires) with several other Micro Services Developed at Program Tom LTD:
- Google Login https://programtom.com/dev/product/google-login-to-program-tom-apps-micro-service/
- JWT Token App https://programtom.com/dev/product/jwt-token-app-micro-service/
- Actions Logging App https://programtom.com/dev/product/actions-logging-application-spring-boot/
- Devices of Users: https://programtom.com/dev/product/devices-of-users-micro-service-application/