Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nikolaevdmv/conference-app

Conference Management System
https://github.com/nikolaevdmv/conference-app

angular2 spring-boot

Last synced: 7 days ago
JSON representation

Conference Management System

Awesome Lists containing this project

README

        

# Conference Management System

My bachelor's graduate work.

## About
I was trying to create a system similar to EasyChair.\
The application has a role system.\
The basic flow:
1) You apply with your conference, and then application admin validates your request and creates the conference.\
2) You acquire the organizer role and can invite users into conference.
3) Assign conference roles on a participant's page. There are several roles within a conference:
* submitter - submits a thesis
* conference admin - can manage roles and send submissions on review
* reviewer - reviews user's submissions
4) After thesis was submitted, conference admin has to assign reviewers, and send it on review
5) Reviewers can download it and write a review in the system
6) If thesis is not acceptable, then Submitter has to edit and reupload it
7) Conference admin sends it on review one more time
8) The process continues until thesis will be accepted

## Environment
* Windows 10
* Java 20
* Gradle 7.5
* Node 18.17.1
* NPM 10.1.0

## Architecture
![diagram_png](./docs/conference-app.png)
## Start
All commands should be executed from the root project folder

### Frontend
```console
cd frontend

npm install

npm start
```
### Backend
```console
cd backend

gradlew.bat clean build bootRun
```

## Usage
Application will be displayed at http://localhost:4200

There is stub data for conferences. Home page will display several conferences, but only first one has predefined participants:
* organizer
* login: [email protected]
* password: test
* 1 reviewer
* login: [email protected]
* password: test
* 2 reviewer
* login: [email protected]
* password: test
* 1st plain user
* login: [email protected]
* password: test
* 2nd plain user
* login: [email protected]
* password: test

## TODO
- [ ] Introduce object storage for documents (MinIo - open source solution)
- [ ] Switch from h2 to postgresql
- [ ] Introduce database change library: Liquibase/Flyway
- [ ] Move from custom security to OpenID Connect (Keycloak)
- [ ] Code refactoring & Tests
- [ ] Rewrite reviewing system: Move from 'reviewers per submissions' to 'reviewers per conference'

## Screenshots
screenshot-1
screenshot-1
screenshot-1
screenshot-1
screenshot-1
screenshot-1
screenshot-1
screenshot-1
screenshot-1
screenshot-1