Skip to content

msi-se/mobile-learning-app

Repository files navigation

README

Overview

This project is a cross-platform mobile application developed using Flutter for the frontend and Quarkus for the backend.

Features

  • Flutter Frontend

    • Cross-platform mobile development (iOS, Android,Web)
    • Custom animations and UI components
    • Real-time data updates using WebSockets
  • Quarkus Backend

    • REST API endpoints
    • MongoDB database
    • Authentication and authorization

Prerequisites

General

Setup

Frontend

  1. Clone the repository
  2. install dependencies
   cd ./frontend
   flutter pub get
  1. env file
.env file in /frontend mit (Url for backend requests):
DOMAIN=connect.in.htwg-konstanz.de
  1. run application
   flutter run
   oder VScode start button in lib/main.dart
  • Login with HTWG account credentials (VPN connection required)
  • Alternative: Auth bypass (no VPN required, Username: Student<Zahl> oder Prof<Zahl> Password:<leave empty>) e.g. Username: Student1

Backend

  1. Run app in Quarkus dev mode
cd ./backend
 mvn quarkus:dev
  • application.properties content (public & private key for jwt sign/verification can be generated with openssl):
quarkus.http.cors=true
quarkus.http.cors.origins=*
quarkus.http.cors.headers=*
quarkus.http.cors.methods=*
quarkus.mongodb.connection-string=mongodb://localhost:27017
quarkus.mongodb.database=mobilelearning
quarkus.naming.enable-jndi=true

# Public verification key
mp.jwt.verify.publickey.location=publicKey.pem
quarkus.native.resources.includes=publicKey.pem

# Private signing key
smallrye.jwt.sign.key.location=privateKey.pem

quarkus.jacoco.excludes=**/helper/**/*

Main Features

Homepage Tab

  1. HTWG Quiz Stats (Globally & user specific)
  2. Mensa Menu (Current Data from Seezeit API https://www.max-manager.de/daten-extern/seezeit/xml/mensa_htwg/speiseplan.xml)

Kurse Tab

  • See Courses that User is owner of (created by User)
  • Courses that User is participant of
    • If course has moodle id number assigned to it. Course appears automatically
  • Feedback/Quiz tab to join or moderate session
  • Feedback
    • participant: send response with different elements (anonymized)
    • moderator: start/end session & see realtime results
  • Quiz
    • Quiz lobby to wait till everyone joins
    • moderator: Start/end session, change questions, display answers & correct answer after closing question, scoreboard inbetween questions, final scoreboard (with throw animations on scoreboard)
  • participant: join with random alias or username, send responses to questions
  • Questions with limited time to answer for increased competition & score calculation based on fastest answer

Live Tab

  • Join live session with code displayed in live session
  • See current live session & join just by clicking on it (User only sees live session of courses that are associated with User)

Profile Tab

  • Logout
  • Privacy Template Text (Abstimmung mit Marius Plakenhorn --> keinen finalen Text erhalten)

Deployment

cd /home/loco/team-learning
docker compose up -d
  • automatic TLS key management with lets encrypt

frontend

build android bundle (for playstore)

flutter build appbundle
  • Upload appbundle to playstore (Version code has to be incremented in pubspec)

Rive

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published