/SnitchManager

An application for collecting points for reporting on colleagues, inspired by a meme

Primary LanguageVueMIT LicenseMIT

SnitchManager

Table of contents

About

An application for collecting points for reporting on colleagues, inspired by a meme

Technologies

Backend

  • Spring Boot
  • Gradle

Frontend

  • Vue.js
  • Vuex

Database diagram

Database

Screenshots

(click to enlarge)

Home Page Home Page Logged Login Register
Denunciation list - user Denunciation list - search Denunciation list - pagination
Denunciation list - admin Types list Ranking
Manage roles Manage roles - popup Denunciation - add

Run project

Backend

You'll need:

  • Java (at least Java 8, tested with Java 11)
  • Gradle
  • Any relational database

Steps:

  1. Create database
  2. Create application_properties file inside snitch-backend\api\src\main\resources with
spring.jpa.hibernate.ddl-auto = update
spring.jpa.show-sql = false
spring.datasource.url = #DB ADDRESS
spring.datasource.username = #DB USERNAME
spring.datasource.password = #DB PASSWORD

#SECURITY
snitch.app.jwtSecret=snitchSecretKey
snitch.app.jwtExpirationMs=86400000

snitch.app.adminEmail= #INITIAL ADMIN EMAIL

#Email configuration
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username= #EMAIL FOR IN-APP EMAIL NOTIFICATION SYSTEM
spring.mail.password= #EMAIL PASSWORD
spring.mail.properties.mail.smtp.auth=true;
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

(After first run tables inside database will be created and email with initial admin password will be sent to email given in snitch.app.adminEmail)

  1. Inside snitch-backend directory run command
gradle bootRun

or use IDE

Frontend

You'll need

  • node
  • npm

Steps:

  1. Inside snitch-frontend\etc set VUE_APP_BASE_URL to match your backend address
  2. Inside snitch-frontend directory run commands

(Only before first run)

npm install

To run app

npm run serve

or use IDE

Credits