Skip to content

frieZZerr/UJ-E-Business

Repository files navigation

E-Business

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.

Project 1 - Docker

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.0 - Add the latest Gradle and the JDBC SQLite package to the above as part of the Gradle project (build.gradle)

✅ 4.5 - Create a HelloWorld example and run the application via CMD and Gradle

✅ 5.0 - Add docker-compose configuration

Code: project_1

Project 2 - Scala

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

Project 3 - Kotlin

Create an application using the Ktor framework in Kotlin.

✅ 3.0 - Create a Kotlin client application using the Ktor framework, which allows sending messages to the Discord platform

❌ 3.5 - The application is capable of receiving messages from users on the Discord platform directed to the application

❌ 4.0 - Return a list of categories upon user request

❌ 4.5 - Return a list of products based on the requested category

❌ 5.0 - Additionally, the application will handle one of the following platforms: Slack, Messenger, Webex, Skype, Discord

Code: project_3

Project 4 - Go

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

Project 5 - React

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

Project 6 - Cypress

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

Project 7 - SonarCloud

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

Project 8 - OAuth2

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

Project 9 - ChatGPT Bot

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

Project 10 - Cloud/CI

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