Java - Spring Boot - TypeScript/JavaScript - React - MySQL - Docker
- React + TypeScript (npx create-react-app library-app –template typescript)
- Bootstrap + CSS
- Navigation bar
- Explore top books
- Book carousel
- Hero's component
- Library services
- Footer
- In the 1st stage of development only ”logged out” version
Spring Data REST API for basic read endpoints:
- GET /books - Read a list of books
- GET /books{id} - Read a single book
- Disable POST, PUT, DELETE, PATCH with config file (implement RepositoryRestConfigurer)
Spring Boot 3.1.4 starter project with:
- Java 17
- Maven
- Data JPA
- Data REST Repositories
- MySQL Driver
- Lombok
SQL scripts in starter files to create a database scema and tables and add books to the database
- Create a developer account at okta.com Add OpenID Connect client app in Okta: Create a new application in the Developer Account. Select option for OIDC: Open ID connect > Single-Page Application
- Set up app configurarion for OpenID Connect (clientId & issuer)
- Install Okta SDK dependecies: Sign-In Widged, Okta React SDK, Okta JavaScript SDK
- Integrate Okta Sign-In Widged
- Add Configurarions to our application
- Create new Security Routes & Navigation Login/Logout (OAuth 2.0 API)
- Create localhost.conf
- Generate key and self-signed certificate with OpenSSL
- Place the .env file
- Change HTTP -> HTTPS and add "set HTTPS=true" to the start script
- When deploying the application change the certificate to the one provided by the hosting service
- Create Stripe Developer Account
- Add Stripe Maven Dependency
- Configure Stripe API Key
- Create custom PaymentInfo DTO
- Create PaymentService to create a PaymentIntent
- Create PaymentController to expose ”/payment-intent” endpoint
- Install stripe API
- Add Sripe script to index.html
- Add Stripe published key
- Create PaymentInfo
- Create PaymentPage
- Update book checkout page
Create Dockerfiles and Docker-compose file for containerization.