O.G. Brown Dev Courses Demo:
ogbrown-courses (Monolithic)
=================================

GitHub Project

Table of contents

  • Introduction
  • Live Demo
  • Local Demo
  • Live Site

Introduction

This project is a monolithic Java Web Application that provides an Educational Website to host online class materials for students attending the various courses. This is a rough-up of a monolithic web application that we will incrementally re-architect into a RESTful Web Service and FrontEnd Web Application that consumes the data from the Web Service. The general business flow of the website supports:

Course

  • Multiple course offerings, e.g. Start Date 8/1/2017, or 10/25/2017. Most recent accessible directly.
  • Multiple Course Labels, e.g. JAVA-1111, XJAV-1122, tracked as the educational agency changes over time. Most recent accessible directly.
  • A list of Prerequisites
  • Most recent Instructor available
  • A list of textbooks
  • A default number of class meeting sessions
  • A list of course objectives
  • A lesson plan by session

CourseOffering

  • Provides a specific number of class meeting sessions for each offering.
  • allows for numerous instructors per offering
  • tracks time logistics (e.g. start date, start time, end date, end time, days of weeks, term) for the offering
  • has location logistics information (e.g. location, room, seats)

Common Course Pages

Programmatically generates the typical starting pages unique for each course and offering. This saves 100’s of statically stored web pages and greatly reduces the setup time for new courses and saves web design time needed for routine materials.

Live Demo

To see a current version with the demo data visit:

https://web.sbogb.com/ogbrown-courses/

Local Demo

In order to run the application you should build the project, deploy the WAR file, and configure your Database server correctly.

  1. Clone the project from git to your local directory
  2. Create your database accessible by your Tomcat server using the sample scripts found in the project sql folder.
  3. Update the JDBC properties.  You can do this by copying the updated/corrected values in:
    src/main/resources/jdbc-demo.properties
    to
    src/main/resources/jdbc-production.properties
  4. Create a WAR file for deploying the application on the Java servlet container by running:
    mvn clean install
  5. Deploy your WAR file and start your application in Tomcat.

Live Site

To see a live site derived from this project visit:

https://dev.ogbrown.com/

OOAD: Class Diagrams

Here is a high level UML Class Diagram of the model, repository, and service classes designed for this project. Click on the image then use your mouse wheel to zoom until the image is readable.

High Level Class Diagram

Project: ogbrown-courses-core
High Level Class Diagram

Here is a UML Class Diagram of the model classes designed for this project. Click on the image then use your mouse wheel to zoom until the image is readable.

Detail View of Model Package

Project: ogbrown-courses-core Detail View of Model Package

Database Entity Relationship Diagram

Using Spring Data JPA and Hibernate Object/Relational Mapping (ORM). Defined the relationships using annotations in the code and had the database programmatically derived.

Technologies/Dependencies

This is a demo Java Web Application built using the Spring Tool Suite (Eclipse) configured for Maven with the following dependences:

Runs on Apache Tomcat 7+ and Java 8.

Last Updated: 2/3/2018