Giter Club home page Giter Club logo

frag.jetzt's Introduction

frag.jetzt

Nomen est omen: The app's name says it all: it stands for both the app's main purpose and its web address https://frag.jetzt

Quality Gate Status

Current Vision Statement

Dual-Mode Learning Platform: The Evolution of frag.jetzt from ARS to PLE

With our tried-and-true open-source software frag.jetzt, we have established a robust Audience Response System (ARS) that is utilized as Software-as-a-Service (https://frag.jetzt) by numerous educators at colleges and universities in Germany, Austria, and Switzerland (the DACH region). Equipped with a variety of integrated teaching and learning tools, frag.jetzt has established itself in digital teaching settings. However, the journey is far from over. Despite the positive resonance, we are committed to pushing the boundaries of what is possible and expanding to a broader user base. The previous focus on the educator demographic has constrained the expansion of our user base. We recognize the immense potential that unfolds once an educator discovers the platform and integrates it into their teaching. To fully harness this potential, we have an ambitious vision: the transformation of frag.jetzt into an AI-supported Personal Learning Environment (PLE) for a wide user group.

The core of the next release is the comprehensive refactoring of frag.jetzt from an ARS to a PLE, to cater to both educators and learners. The first encounter with the frag.jetzt platform will be a defining moment as users will have the choice to utilize the platform either as an ARS for educators or a PLE for learners. We are firmly convinced that this groundbreaking realignment, opening up frag.jetzt as a personal learning environment, will exponentially increase the number of users. A central incentive of our realignment is the integration of ChatGPT as an AI tutor in personal virtual rooms, with a dedicated room created for each subject. This innovative approach will make frag.jetzt a magnet for a broader user base, dramatically enhancing our influence and reach in the educational landscape.


Old Vision Statement

With our innovative product "frag.jetzt" we want to conquer the market of audience response systems. With "frag.jetzt," we are addressing teachers at schools and universities. With "frag.jetzt," we offer a browser-based, privacy-compliant Q&A app for anonymous, silent questioning. The unique selling point is the option to award "good questions" for earning bonuses. Studies show that active participation in class is significantly boosted by silent questions. Bonuses for good questions as extrinsic learning motivation reinforce this effect.

Start page

Features

  1. There are four roles in the app: "Room creator", "Moderator", "Participant" and "Administrator". Each role allows the creation of any number of rooms. The moderator role can be assigned by the creator of a room to people who have registered. In addition, the moderator role can be temporarily assigned to guests by creating a special room key or link. In any role with access to a given room, posts can be made anonymously and others' posts can be read. Only the administrator can compose and publish messages for all users of the app.

  2. When creating a room, the room creator can choose whether all questions should be moderated or published directly, whether a profanity filter should be active, whether the quiz app "antworte.jetzt", the bonus option or the brainstorming option should be activated.

  3. After entering the room key or by scanning the QR code, participants can ask their questions and rate others' questions with +1 or -1. The question board can be moderated. Room creators or moderators can set a threshold for automatic publication of a question, i.e., at what rating a question is displayed on the question board. The threshold can be set between -100 and 0 rating points.

  4. To make a question, answer, or comment as readable and understandable as possible, the AI translation program DeepL translates the text into a foreign language and back into the original language at the user's request. The back translation is in almost all cases better than the original in terms of spelling, grammar, punctuation, and language style. For the languages German, French, Italian, Spanish, Dutch, Portuguese, Polish and Russian, back-translation can be done in two ways: informally (German: Duzen) or formally (German: Siezen). The language of the entered text is automatically determined by the LanguageTool software.

  5. A lecturer can award bonus points for questions that are goal-oriented and lecture-related. Good questions earn a star, and the student finds an 8-digit code ("bonus token") for each star in their bonus archive. The tokens can be redeemed for bonus points by emailing the instructor. The lecturer or his moderators can validate the submitted bonus tokens with the awarded ones in their bonus archive.

  6. Instructors and moderators can affirm, deny, answer, star, or ban questions to the moderation board. Questions on the moderation board can be released individually. Only room creators can delete questions, but only if they do not have a bonus star. All other users can only delete their own questions.

  7. Every user can sort the question board according to the criteria "newest question first", "downward or upward by rating points" and "degree of controversy". The board can be searched, and the questions can be filtered. The following filter criteria are available: bonus-awarded, conversations, bookmarked, answered by the room creator, answered by a moderator, unanswered, question number, censored, and own questions. In addition, the question stream can be paused, i.e., new questions are only displayed if the user releases the question stream again.

  8. Room creators and moderators can define categories ("tags") for questions in the room settings. The person asking can then tag their question with one of the predefined categories. Categorized questions can be filtered by clicking on the tag. Room creators and moderators can also tag questions afterwards.

  9. Room creators and moderators have the option to enable all questions for anonymous commenting. The comments then appear as a conversation offset to the side below the respective question.

  10. Each user can call up a notification board where their own questions are listed as soon as they have received a reaction: for example, if they have been commented on, answered in the affirmative, denied, banned, published or deleted.

  11. There is a presentation mode called "Question Focus" that allows each user to view the questions individually in full view. Also, new questions can be displayed automatically in the "Auto Focus" mode.

  12. There is a navigation mode called "Question Radar". The radar locates questions based on keywords generated in real time by the NLP software spaCy using a grammatical analysis of the sentences entered. Afterwards, "frag.jetzt" checks whether the generated keywords are also keyworded on Wikipedia. The larger and more central a keyword appears on the radar, the more numerous or significant the associated questions are.

  13. Any user can export all questions with their answers, comments, and tags. The room creator and moderators can also export the moderated questions. If bonuses have been awarded, the associated bonus codes are also in the export table.

  14. Registered users can be informed about new questions and answers by mail. Weekday and time of the mail notification are adjustable.

  15. The user interface meets the requirements for readability according to WCAG 2.1 AA. Appropriate display options are available for beamer presentation and for visually impaired persons. In particular, the font size of the questions can be scaled. In addition to the room code, a room can also be entered via an automatically generated direct link.

  16. Any number of rooms can be created as guest or registered user. Only the rooms of registered users remain permanently. 180 days after the last use of a room, it will be deleted automatically. Bonus tokens of unregistered participants are only stored in the browser cache. If the browser cache is deleted, the tokens are lost. Before leaving a session as an unregistered person, they will be asked to export their acquired tokens as a mail draft or save them to the clipboard.

  17. Although an ordinary website, it behaves like an app from the App Store. It can be installed from the browser: "Add to Home". After that, it launches like a regular app. As a Progressive Web App (PWA), it runs on any smartphone, no matter what operating system, no matter what browser. So the audience will always be ready to use "frag.jetzt" on the spot and spontaneously.

  18. Every user who has used "frag.jetzt" interactively, for example by creating a room or asking a question, can rate the app with stars. The rating scheme follows that of Amazon.

Glossary

See PDF

Use Case Diagram

See SVG

Domain Diagram

See SVG

Activity Diagram for Bonus Awarding

See SVG

Activity Diagram for Brainstorming

See SVG

frag.jetzt development with docker

frag.jetzt consists of a variety of backend services. Starting them all individually or installing them on the computer is complex, which is why there is a docker compose solution for this.

Prerequisite

The following software has to be installed on your computer:

  1. GNU/Linux compliant operating system, for example:
    1. Debian based: Debian, Ubuntu, Mint, ...
    2. Arch based: Arch, Manjaro, ...
    3. Red Hat based: Red Hat, RHEL, Fedora, CentOS, ...
    4. ...
  2. Docker
    1. Installation Instructions
    2. Docker Reference
  3. Docker Compose
    1. Installation Instructions
    2. Docker Compose Reference

Prerequisite for other OS's

We strongly recommend that you use a GNU/Linux compliant OS! Despite many optimizations, frag.jetzt doesn't run nearly as fast on Windows or MacOS as it does on a GNU/Linux OS!

Windows

Turn off the conversion of line encodings in git.

git config --global core.autocrlf false

Follow the Instructions for windows described in the Docker Orchestration repository.

MacOS

Install the GNU Core Utilities.

Get the code base

Clone the frag-jetzt repository and the Docker Orchestration repository:

Start the Backend services

Follow the steps described in the Docker Orchestration repository.

Use the --no-frontend option so that the frontend does not spin up in Docker Orchestration.

Start the Frontend

The frag.jetzt frontend ships with an easy setup script: .docker/setup.sh. To run the setup script, make sure it is executable. If it is not, make it executable:

chmod u+x .docker/setup.sh

Now, run the setup script:

./.docker/setup.sh

You may now start the frontend. Use following commands:

# Start the app in foreground (not recommended)
docker-compose up

# Start the app in background
docker-compose up -d

# Show and follow the logs
docker-compose logs -f

# Shutdown app
docker-compose down

# Shutdown app and remove volumes
docker-compose down -v

Access frag.jetzt

If you did not change any ports, the application is now available under localhost:4200.

All emails from the system are intercepted and can be viewed in the Mailhog interface at localhost:8025.

Code style analysis

To run a local code style check with sonarqube, follow these steps:

  1. switch into the analysis folder
    cd analysis
  2. start the sonarqube server
    docker-compose up -d sonarqube
  3. when sonarqube has started, you may run analysis whenever you want with
    docker-compose run --rm analysis

Credits

frag.jetzt is powered by Technische Hochschule Mittelhessen | University of Applied Sciences.

frag.jetzt's People

Contributors

addimlal avatar andre143 avatar animated-hub avatar bimberg-at-thm avatar cedricndong avatar cetinboy avatar djuffocarelle avatar drdreave avatar erbayemine avatar exsile95 avatar gromhold avatar hefferw avatar iamyosep avatar jhns88 avatar kqc-real avatar krayaty avatar larswaechter avatar ldtr89 avatar lukas-haase avatar lukasma avatar mohrimn avatar muhammetalierbay avatar paul-fugmann avatar philippsautner97 avatar r4d0x-de avatar sknr15 avatar tekay avatar xengil avatar yvan-tchiengue avatar zweidm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

ziegenberg

frag.jetzt's Issues

frag.jetzt unusable with private window in Firefox 107

With a private window in Firefox 107.0 and 107.0.1 under GNU/Linux and Windows, frag.jetzt is unusable. The page loads but is dark grey. Some black icons are barely visible at the bottom, but the usual Welcome message with Onboarding button is not visible.
This is particularly bad if students want to enter a room in a private window.

The browser's console shows errors:

ERROR Error: Uncaught (in promise): IndexedDB error: InvalidStateError: A mutation operation was attempted on a database that did not allow mutations.
    Me https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    Me https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    Ie https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    invokeTask https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    onInvokeTask https://frag.jetzt/main.596646befc1b5201.js:1
    invokeTask https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    runTask https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    B https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    invokeTask https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    le https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    oe https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    Ne https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
ERROR TypeError: this.room is null
    announce https://frag.jetzt/9018.ae461437ba85fe43.js:1
    listenerFn https://frag.jetzt/9018.ae461437ba85fe43.js:1
    J https://frag.jetzt/main.596646befc1b5201.js:1
    invokeTask https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    onInvokeTask https://frag.jetzt/main.596646befc1b5201.js:1
    invokeTask https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    runTask https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    invokeTask https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    le https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    oe https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1
    Ne https://frag.jetzt/polyfills.8c46eac9e9708b77.js:1

Visibility of state icons using Firefox vs. Chrome

Hi,

the question cards on the question overview show different behaviour using Firefox and Chrome.
Firefox doesn't show them, just the burger menu. Therefore, the actions are reachable, but the state isn't visible.

Firefox:
grafik

Chrome:
Screenshot from 2020-10-07 10-41-58

language problem

Hi there!
there seems to be some problem if my browser language is set other than german and the whole page got frozen.
image
image

Best,
PJ

"Delete questions" deletes room instead

Steps to reproduce:

  • In the "creator" role, click on one of your rooms.
  • Top-right corner, click "Options", then "Delete questions" (in order to reset the room).

Actual result:

  • "Are you sure? Do you really want to delete the room XY? [...]", button "Delete room" is shown.
  • After clicking the button, room gets deleted.

Expected result:

  • After confirmation, the room still exists, all questions are gone.

email addresses containing '+' not accepted

The plus sign (+) is a valid character for the first part of an email address (the one before the @). However, trying to sign-up using such a (valid) email address does not work and the error message that appears suggests that there might already exist an account with that email (which it does not for sure).

Room creation broken

Steps to reproduce:

  • In Firefox (FF 93.0 on Ubuntu Linux in my case) or Google Chrome, click "(+) Create a room" on the start page.
  • Enter a room name. Click "Create room".

Actual result:

  • A lot of error messages in dark red boxes pop up in quick succession.
  • The start page is shown as if the action had failed.
  • In fact, the room is created, and shows up in the creator's room list.

Expected result:

  • Room is created, and the page switches to the room list containing the new room.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.