This web app manages conferences, different user roles, abstracts submissions, and reviews. Made with Angular and Spring.
Icons are attributed in the footer of the Home page. Left-up icon changes theme.
- App Photos
- Role-based authorization
- Requirements
- Steps to setup Frontend
- Steps to setup Backend
- Diagrams
Light theme | Alien Theme |
---|---|
Roles: Chair, Author, PC Member, Co-Chair, SC Member.
Each user may have role X in conference 1 and role Y in another conference.
Except the 'admin', which is always Chair.
With default register, you are Author. Other roles get email invitation links when Chair creates a conference.
Author
- submit scientific paper
- see results
- participate in sections where papers are presented
PC Member
- submit scientific paper
- see results
- participate in sections where papers are presented
- bid papers (show which you would like to review)
- review papers
Co-Chair
- participate in sections where papers are presented
- bid papers (show which you would like to review)
- review papers
- assign a paper to a bidder
- see all reviews:
- choose the final verdict of a paper
- send to another reviewer
- request discussion (reset reviews to NOT_REVIEWED)
Chair
- same as Co-Chair
- create section
- create conference
SC-Member
- participate in sections where papers are presented
- Angular + Angular Material
- MySql server
- Java
- Install nodejs https://nodejs.org/en/, LTS
- Hope that WebStorm recognizes 'npm install' command
- Open project in IDE (WebStorm, VS Code)
- Go inside folder 'frontend' with the terminal (the IDE may have 'open folder in terminal' on right click).
- Run the command npm install_ to install folder 'node_modules'.
- Start app with WebStorm, VS Code or with command 'ng serve' in terminal.
- The app will run on the address http://localhost:4200/ -> the default port (4200) for angular projects
In brief, you need: MySQL Server (username: root, password: iss2020) and an empty database 'cms'
-
Download MySQL Server from google. Windows (x86, 32-bit), MSI Installer. https://dev.mysql.com/downloads/windows/installer/8.0.html
- (mysql-installer-web-community-8.0.19.0.msi)
- Choose 'Server only'
- Click 'Next' until you can choose password
- Put password 'iss2020'
- Click 'Next' all the way
-
Download MySQL Workbench from google (same functionality as SSMS-Sql Server Management Studio)
- (mysql-workbench-community-8.0.19-winx64.msi)
- Click 'Local Instance MySQL80' or smth like that
- Left, middle of the screen, choose Schemas (belongs to tab Navigator), here you can create a DB with 'Create Schema' from Toolbar
- create DB called 'cms'
- Create project on the internet with Spring Initializr, add dependencies: Web, JPA. Choose Gradle, Java 11.
- Open project in IDE (IntelliJ, Eclipse)
- Paste the bellow code in 'resources/application.properties'. It connects the project with MySQL. Configures it to know the connection string, DB name, port of the DB and others.
spring:
jpa:
show-sql: true
hibernate:
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL8Dialect
datasource:
url: jdbc:mysql://localhost/cms?serverTimezone=UTC
username: root
password: iss2020
driverClassName: com.mysql.cj.jdbc.Driver
servlet:
multipart:
enabled: true
max-file-size: 10MB
file-size-threshold: 10KB
max-request-size: 15MB
server:
servlet:
context-path: /cms/api/
- Change 'application.properties' to 'application.yml'. Its just a simpler form of text format.
- Add this in 'build.gradle' -> dependencies{..}. It imports the jdbc driver.
implementation 'mysql:mysql-connector-java'
- Run
Found in '~diagrams and documents'.