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.
- Clone the project from git to your local directory
- Create your database accessible by your Tomcat server using the sample scripts found in the project
sql
folder. - 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
- Create a WAR file for deploying the application on the Java servlet container by running:
mvn clean install
- Deploy your WAR file and start your application in Tomcat.
Live Site
To see a live site derived from this project visit:
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.
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.
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:
- Spring Framework 4
- Spring Web MVC
- Spring Data JPA
- Logback
- JUnit 4
- Mockito
- Hibernate ORM 5
- MySQL 5.x
- EHCache
- Jackson
- Castor XML
- Thymeleaf 2.1
- JSPs
- WebJars
- Bootstrap 3
- JQuery
- HTML
- CSS
Runs on Apache Tomcat 7+ and Java 8.
Last Updated: 2/3/2018