Coder Social home page Coder Social logo

pinf-projekt's Introduction

Projekt im P-Seminar Informatik

GWE ist eine Java basierte Web Anwendung. Diese soll ehemaligen Schülern die Möglichkeit geben sich zu registrieren, um mit dem Gymnasium Waldkraiburg in Kontakt zu bleiben. Das Portal könnte beispielsweise dazu genutzt werden, um ehemalige Schüler mit interessanten Berufen in den Unterricht oder zu Veranstaltungen, wie dem Berufsinformationsnachmittag, einzuladen.

Gruppen

  • Java Entwicklung im Back-End Bereich und HTML-Entwicklung im Front-End Bereich
  • Datenschutz, Nutzungsrichtlinien, etc.
  • Dokumentation, Protokollierung des Projekts
  • Testing

Projekt Setup

  1. Vorraussetzung: Java (JRE und JDK)
  2. Installiere die PostgreSQL Datenbank
  • Wähle während der Installation ein Passwort
  • Starte nach der Installation das Programm "pgAdmin III"
  • Wähle links im Objektbrowser den "PostgreSQL 9.5 (localhost:5432)" Server aus und verbinde dich mit einem Rechtsklick
  • Im Objektbrowser findest du nun "Datenbanken" als Unterpunkt des Servers
  • Erstelle mit einem Rechtsklick eine neue Datenbank mit dem Namen "gwedb"
  1. Installiere die Eclipse IDE
  • Öffne Eclipse
  • Wähle unter "Window/Perspective/Open Perspective/Other..." "Git" aus
  • Klicke auf "Clone a Git repository..." und gebe "https://github.com/voidc/pinf-projekt.git" als URI und deine Anmeldedaten für GitHub ein
  • Wenn du das Projekt geclont hast, wechsle oben rechts zurück auf die "Java" Ansicht
  • Wähle "File/Import/Maven/Existing Maven Projects" und gebe den geclonten Ordner als Root Directory an

Lokal Ausführen

Starte die main-Methode in Application.java mit den unten angegebenen Umgbungsvariablen und der Option -Dserver.port=8080.

Umgebungsvariablen

DB_URL=jdbc:postgresql://localhost:5432/gwedb
DB_USER=postgres
DB_PASSWORD=<Datenbank Passwort>
[email protected]
EMAIL_PASSWORD=<Email Passwort>
GWE_ADDRESS=http://localhost:8080/

Deployment

GWE wird auf Heroku deployt. Dass geschiet über das Heroku Dashboard, nachdem der Code auf GitHub gepusht wurde.

Seite aufrufen

Resourcen

pinf-projekt's People

Contributors

0licom avatar lukewe avatar turrican72 avatar voidc avatar zepo55 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pinf-projekt's Issues

Registierung: formaler Bezug

Die Datenschutzerklärung wird in der Registrierung als die der Schule bezeichnet. Da diese aber bald durch unsere eigene ersetzt wird, sollte der Text zu "Datenschutzverordnung von GWE gelesen und akzeptiert " geändert werden.

Captcha

Um das automatisierte Erstellen von Account beispielsweise als DoS-Attacke zu verhindern, wäre eine Captcha bei der Registrierung sinnvoll. Es bietet sich Googles Lösung reCaptcha an.

Fehlende Überprüfung bei der Registrierung ob E-Mail verwendet ist

Bei der Registrierung wird nicht getestet, ob die E-Mail bereits in der Datenbank eingespeichert ist.

HTML-Fehlermeldung:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Tue Jan 19 18:38:00 CET 2016
There was an unexpected error (type=Internal Server Error, status=500).
could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement

Programm-Log angehängt
log.txt

Id-1 bereits vergeben

Bei der ersten Registrierung beträgt die automatisch generierte Id 1 und der neue Benutzer kann aufgrund des bereits vorhandenen Eintrags unter der Id 1 in der Datenbank nicht registriert werden.

Lösung: Id von user@test ändern oder die automatische Generierung beeinflussen

SSL Zertifikat

Damit unsere Seite seriös ist, benötigt sie eine sichere HTTPS Verbindung. Für diese wird jedoch ein digitales SSL Zertifikat benötigt, das unsere Identität belegt. Diese Zertifikate werden von Zertifizierungsstellen ausgestellt, die hierfür gewöhnlich eine jährliche Gebühr verlangen. Jedoch gibt es auch Organisationen die kostenlose Zertifikate versprechen. Siehe Let's Encrypt oder CAcert.

Rollen mit Rechten

Das Programm sollte ermöglichen, einzelnen Usern Rollen zuzuweisen, damit User die Möglichkeit haben auf spezielle (zukünftige) Features zuzugreifen, wie beispielsweise Gruppen zu erstellen usw.

Überarbeitung des Beschäftigung Feldes

Das Beschäftigungsfeld dient derzeitig dazu, anzugeben, was man gerade macht und wo man dies tut.
Beispiel: "Informatikstudent im 3. Semester an der TUM" oder "JavaEE Entwickler bei QAware"
Zukünftig soll außerdem der berufliche Werdegang angegeben werden können. Dies ist jedoch optional.
Damit Nutzer den Zweck dieses Feldes verstehen, ist es sinnvoll eine Beschreibung mit Beispiel zu dem Feld anzuzeigen.

Registrierung mehrerer Nutzer gleichzeitig

Dies wäre eine Funktion, die nur Admis zugänglich ist. Auf einer neuen Seite haben diese die Möglichkeit Nutzerdaten im CSV Format einzugeben, um so beispielsweise einen ganzen Jahrgang auf einmal zu registrieren. Als Passwörter müssten hierbei Standardpasswörter, wie zum Beispiel eine Kombination aus Vor- und Nachname, verwendet werden.

Veranstaltungen: Löschen?

Fremde Veranstaltungen sollten für einen Nutzer nicht löschbar sein und sind es anscheinend auch nicht. Jedoch sollte der Button bei anderen Nutzern ausgeblendet werden

Veranstaltungen: Datumszeile

Die Datumszeile bei den Veranstaltungen sollte nicht durch den Nutzer direkt bearbeitbar sein. Eingaben wie "Martin ist toll" sollten in dieser Zeile nicht möglich sein und stellen nur eine Fehleranfälligkeit dar.

Veranstaltungen teilweise fehlerhaft

Fehler beim Abrufen einiger Veranstaltungen.
Beim Aufrufen einer Testveranstaltung erscheint eine Fehlerseite mit dem Inhalt "500" und anbei dem Fehler org.thymeleaf.exceptions.TemplateProcessingException.
Dieser Fehler ist reproduzierbar und die Veranstaltung scheint auch für andere Verfügbar zu sein. http://gymwkb-gwe.herokuapp.com/event/4.

Passwort bei Registrierung

Zur Sicherheit des Nutzers sollte dieser bei der Registrierung sein Passwort zweimal eingeben um evtl. Schreibfehler etc. zu vermeiden. Auch eine Warnung vor einer aktiven Feststelltaste wäre eine nützliche Funktion zum Schutz des DAUs.

Test-Issue

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

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.