This is a repository for UJ E-Business course. It will contain all the required projects. Each project will have it's own seperate branch with commit history.
The master
branch will be constantly updated after each project has been finished.
Create a Docker image based on a Debian distribution (without installed Java, Kotlin packages, etc.) and install Kotlin, Go, or Scala. Additionally, tools for building such as sbt, Gradle, respectively for the language should be added. The image should also include a linter for static code analysis in Kotlin.
✅ 3.0 - Ubuntu image with Python version 3.8
✅ 3.5 - Ubuntu:22.04 image with Java version 8 and Kotlin
✅ 4.5 - Create a HelloWorld example and run the application via CMD and Gradle
✅ 5.0 - Add docker-compose configuration
Code: project_1
Create an application using the Play framework in Scala 2.
✅ 3.0 - Create a controller for Products
✅ 3.5 - Create endpoints according to CRUD - data retrieved from the list
✅ 4.0 - Create controllers for Categories and Cart + endpoints according to CRUD
❌ 4.5 - Run the application on Docker (create an image) and add a script to run the application via ngrok
❌ 5.0 - Add CORS configuration for two hosts for CRUD methods
Code: project_2
Create an application using the Ktor framework in Kotlin.
❌ 4.0 - Return a list of categories upon user request
❌ 4.5 - Return a list of products based on the requested category
Code: project_3
Create an application using the Echo framework in Go.
✅ 3.0 - Create a Products controller compliant with CRUD operations
✅ 3.5 - Create a Product model using Gorm and use the model to handle products (CRUD) in the controller
✅ 4.0 - Add a Cart model and implement the corresponding endpoint
✅ 4.5 - Create a Category model and establish a relationship between the category and the product
✅ 5.0 - Group queries into Gorm scopes
Code: project_4
Create a client-side application using the React.js library.
✅ 3.0 - Create Products and Payments components
❌ 3.5 - Add Cart component with a view and routing
❌ 4.0 - Communicate between server with React-Hooks
❌ 4.5 - Create docker-compose
✅ 5.0 - Use axios with CORS headers
Code: project_5
Create 20 test cases in one of the following solutions:
- Cypress JS (JS)
- Selenium (Kotlin, Python, Java, JS, Go, Scala)
✅ 3.0 - Create 20 test cases in CypressJS
❌ 3.5 - Extend the functional tests to include a minimum of 50 assertions
❌ 4.0 - Create unit tests for a selected previous project with a minimum of 50 assertions
❌ 4.5 - Add API tests, covering all endpoints with at least one negative scenario per endpoint
❌ 5.0 - Run the functional tests on Browserstack
Code: project_6
Improve the applications to achieve 0 bugs, 0 vulnerabilities, 0 security hotspots, and 0 security vulnerabilities.
❌ 3.0 - Add a script to the appropriate server-side application code in git hooks
✅ 3.5 - Eliminate all bugs in the code in Sonar (server-side application code)
✅ 4.0 - Eliminate all code smells in the code in Sonar (server-side application code)
✅ 4.5 - Eliminate all vulnerabilities and security issues in the code in Sonar (server-side application code
✅ 5.0 - Eliminate all bugs and code smells in the client-side application code
Code: project_7
Direct creation of clients on the React side excluding server-side application from communication, e.g., using auth0, is prohibited. Correct communication: react-server-provider-server(via return uri)-react.
✅ 3.0 - Login through server-side application (without OAuth2)
✅ 3.5 - Registration through server-side application (without OAuth2)
❌ 4.0 - Login via Google OAuth2)
❌ 4.5 - Login via Facebook or Github OAuth2
❌ 5.0 - Saving OAuth2 login data on the server side
Code: project_8
Create a frontend application which will connect to a separate service. This service will analyze text from the user, send a query to GPT, and then forward the response back to the user.
✅ 3.0 - Create service on the server side to connect with ChatGPT for chat services
✅ 3.5 - Create user frontend interface which will communicate with the service
✅ 4.0 - Create a list of 5 different openings and closings for conversations
❌ 4.5 - Filter for topics related to a store
❌ 5.0 - Filter responses by sentiment
Code: project_9
Use GitHub Actions (other CI solutions are acceptable) and Azure cloud (other clouds are acceptable) to build and deploy a client application (frontend) and a server application (backend) as two separate applications.
✅ 3.0 - Create the appropriate instances on the cloud side using Docker
✅ 3.5 - Create a suitable pipeline in GitHub Actions for building the application (e.g., via fatjar)
✅ 4.0 - Add email notifications for application builds
✅ 4.5 - Add a step to deploy the server and client applications to the cloud
❌ 5.0 - Add the execution of automated regression tests (functional) as a step in Actions
Code: project_10