Skip to content

ACME Learning Center Platform, illustrating development with Java, Spring Boot Framework, and Spring Data JPA on MySQL Database. It also illustrates open-api documentation configuration and integration with Swagger UI.

Notifications You must be signed in to change notification settings

upc-pre-202401-si729-sw57/learning-center-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ACME Learning Center Platform

Summary

ACME Learning Center Platform, illustrating development with Java, Spring Boot Framework, and Spring Data JPA on MySQL Database. It also illustrates open-api documentation configuration and integration with Swagger UI.

Features

  • RESTful API
  • OpenAPI Documentation
  • Swagger UI
  • Spring Boot Framework
  • Spring Data JPA
  • Validation
  • MySQL Database
  • Domain-Driven Design

Bounded Contexts

This version of ACME Learning Center Platform is divided into two bounded contexts: Profiles, and Learning.

Profiles Context

The Profiles Context is responsible for managing the profiles of the users. It includes the following features:

  • Create a new profile.
  • Get a profile by id.
  • Get all profiles.

This context includes also an anti-corruption layer to communicate with the Learning Context. The anti-corruption layer is responsible for managing the communication between the Profiles Context and the Learning Context. It offers the following capabilities to other bounded contexts:

  • Create a new Profile, returning ID of the created Profile on success.
  • Get a Profile by Email, returning the associated Profile ID on success.

Learning Context

The Learning Context is responsible for managing the courses, course learning paths and course enrollments. Its features include:

  • Create a Course.
  • Get a Course by id.
  • Update a Course information.
  • Delete a Course.
  • Get all Courses.
  • Add an existing Tutorial to Course Learning Path.
  • Register a new Student with implicit profile creation.
  • Submit a Student Enrollment Request in a Course.
  • Cancel a Student Enrollment Request in a Course.
  • Confirm a Student Enrollment Request in a Course.
  • Reject a Student Enrollment Request in a Course.
  • Get all Enrollments for a Course.

This context includes also an anti-corruption layer to communicate with the Profiles Context. The anti-corruption layer is responsible for managing the communication between the Learning Context and the Profiles Context. It consumes the capabilities offered by the Profiles Context to:

  • Create the Profile of a new Student.
  • Get the Profile ID of a Student by Email.

Tutorial is a concept that represents a learning resource. It is used to build the learning path of a course. The Tutorial aggregate and its publishing lifecycle are part of the Publishing bounded context, which is beyond the scope of this platform version.

Reference Documentation

For further reference, please consider the following sections:

Guides

The following guides illustrate how to use some features concretely:

About

ACME Learning Center Platform, illustrating development with Java, Spring Boot Framework, and Spring Data JPA on MySQL Database. It also illustrates open-api documentation configuration and integration with Swagger UI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages