Stack
A Web Project designed after CS122B at UCI. CS122B Syllabus
Backend
Backend 0: Basic Service
Basic Spring Boot service to learn the basics of Spring.
Starter Template
Backend 1: IDM Service
The Identity Management Service for User to Login and Register as well as AccessToken creation, refreshing, and verification.
Starter Template
Backend 2: Movies Service
The Movie search Service allowing Users to search for Movies and Persons using search parameters.
Starter Template
Backend 3: Billing Service
The Billing Service for User cart management and order creation, confirmation and history.
Starter Template
Backend 4: Gateway Service
The Gateway Service to bring together the IDM
, Movies
and Billing
Service by either forwarding IDM
Requests to IDM
Service or Authenticating all other incoming requests with the IDM
before forwarding them to either the Movies
or Billing
Services.
Starter Template
Frontend
Frontend: Starter
Starter code that will be used through all three parts of the front end.
Starter Template
Frontend 1: Register
Start of Frontend. Develop the Register endpoint and make a call to our IDM Service.
Documentation
Frontend 2: Search
Movies Search. Create a interactive search page to search through our movies.
Documentation
Frontend 3: Full
Full implementation of our Backend services to our frontend through our gateway.
Documentation
Activities
Activity 1: Spring
An intro into the basics of Spring
Repository
Activity 2: Security
Service security using: Password Salt + Hashing, JSON Web Tokens, and Refresh Tokens.
Repository
Activity 3: Database
Connecting to SQL Databases through Spring's NamedParameterJDBCTemplate.
Repository
Activity 4: SQL
Advanced SQL query creation with dynamic queries.
Repository
Activity 5: Stripe
Communication with the Stripe API with the Stripe SDK for managing user payments.
Repository
Activity 6: Reactor
Reactor Core with dealing with Mono and Flux calls.
Repository
Languages
Java OpenJDK
We are using the OpenJDK of Java.
Version 8
Adoptium Download
Azul Zulu Download
SQL
MySQL is the Dialect for this project.
Version 8.0.x
MySQL Community Server Download
Javascript
Project is written to target Node.js.
Version 16.14.x LTS
Node.js Download
JSON
The primary object representation we will be using for communication between our services and our frontend
JSON
HTML
While we will not be using raw html, React uses JSX
that represent html components.
React JSX
CSS
CSS can either be written as css files and imported directly, or made with styled-components
.
styled-components
Tools
JetBrains Toolbox
Manages all JetBrains applications. You can use this to download IntelliJ IDEA Ultimate
and WebStorm
.
Download
IntelliJ IDEA Ultimate
IDE for developing Java projects with internal support for database management.
Website
WebStorm
IDE for developing Javascript projects.
Website
Postman
A platform for creating REST calls to our services for testing.
Note: The web client will not work as it does not allow calls to localhost
please download the app instead.
Download
GitHub Desktop
A UI for Git that works with GitHub projects.
Download
Frameworks
Spring Boot
A Java framework that helps develop web applications.
Website
React
A Javascript framework that helps with web UI development by helping us easily control the DOM of the website.
Website
Stack Dependencies
Maven - JitPack
Repository
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Stack-Core
Dependency
<dependency>
<groupId>com.gitcodings.stack</groupId>
<artifactId>stack-core</artifactId>
<version>1.2.0</version>
</dependency>
Stack-Parent
Dependency
<dependency>
<groupId>com.gitcodings.stack</groupId>
<artifactId>stack-parent</artifactId>
<version>1.2.0</version>
</dependency>