Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/devourtech/course-management-system
An honest attempt to learn design principles in JAVA by building a course management system
https://github.com/devourtech/course-management-system
cicd java javafx kafka mysql spring-boot
Last synced: about 1 month ago
JSON representation
An honest attempt to learn design principles in JAVA by building a course management system
- Host: GitHub
- URL: https://github.com/devourtech/course-management-system
- Owner: DevourTech
- Created: 2021-01-13T18:09:19.000Z (almost 4 years ago)
- Default Branch: develop
- Last Pushed: 2021-06-20T07:40:16.000Z (over 3 years ago)
- Last Synced: 2024-01-16T17:25:04.010Z (11 months ago)
- Topics: cicd, java, javafx, kafka, mysql, spring-boot
- Language: Java
- Homepage:
- Size: 139 KB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](https://github.com/DevourTech/cms-server) - This is the server which exposes REST APIs to deliver data to the client.
* [cms-core](https://github.com/DevourTech/cms-core) - This is the data model used by both the client and the server.
* [cms-events](https://github.com/DevourTech/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:
```zsh
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
```zsh
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](https://openjfx.io/openjfx-docs/) conveys information to setup JavaFX via various configurations.
Go to `JavaFX and IntelliJ` > `Non-modular from IDE` to setup JavaFX on IntelliJ.