Skip to content

An honest attempt to learn design principles in JAVA by building a course management system

Notifications You must be signed in to change notification settings

DevourTech/Course-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Course Management System

Introduction

  • An honest attempt to build a course management system
  • CMS will consist of a client, server and an event bus for event driven communication.
  • 3 client interfaces:
    • Student
    • Instructor
    • Admin
  • Server - REST API (Spring)
  • On demand communication b/w client & server - HTTP/TCP
  • Real time communication - Kafka

Module dependencies

  • cms-server - This is the server which exposes REST APIs to deliver data to the client.
  • cms-core - This is the data model used by both the client and the server.
  • cms-events - This is the Kafka connector that listens to events and notifies the client and the server.

Project Setup

Github token to access packages

Course Management System has dependencies on many javafx libraries (maven dependencies) as well as a shared core library (developed as part of this project) which is used both by the client module and the server module.

Since the shared core library is hosted as a Github Package, you'll need to setup a Github token with your Github account.

Navigate to GitHub > Settings > Developer Settings > Personal access and click on Generate New Token

Give at-least read:packages permission.

Copy the token and setup the following environment variables:

export GITHUB_USERNAME={Your Github Username}
export GITHUB_TOKEN={Copied token from the above step}
export JAVA_EXEC={Path to java 15.0.1 executable}

Make sure that the names of environment variables are as it is. Otherwise, you might face a tough time :P

Running the project

Using Maven

Just a simple command is enough to launch the JavaFX Application

make 

Using IntelliJ

I know a lot of folks love IntelliJ (including me), therefore it makes sense to setup Intellij with the JavaFX distribution.

This link conveys information to setup JavaFX via various configurations. Go to JavaFX and IntelliJ > Non-modular from IDE to setup JavaFX on IntelliJ.

About

An honest attempt to learn design principles in JAVA by building a course management system

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published