Go web application for school graduates (kyrgyz: abiturients) who want to apply for a DAAD grant at KGFAI
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
go
pages
resources
.gitignore
LICENSE
README.md
de33.png
gb40.png

README.md

gostip English Deutsch

Go web application for school graduates (kyrgyz: abiturients) who want to apply for a DAAD grant at KGFAI

Besides its primary purpose, this application is used as part of a tutorial to demonstrate use of different libraries to write a complete and working web application.

Go Web Anwendung für Abiturienten, die sich für ein DAAD Stipendium an der DKFAI bewerben wollen
Neue Features

23.05.2017: Applikation unterstützt jetzt HTTPS mit LetsEncrypt Zertifikaten. Der Lokale Zugriff aus einem privaten Netz kann auch über HTTP erfolgen, um TLS Fehler zu vermeiden.

Installation

go get lädt nicht die transitiven Abhängigkeiten, daher werden diese mit go get ... aufgelöst. Dabei gibt es einige harmlose Fehlerausgaben.

go get -u github.com/geobe/gostip
go get ...

Außerdem wird postgresql verwendet. Dazu muss

  • pgSql installiert und
  • eine neue Datenbank mit einem Benutzer für die Go Applikation angelegt werden. Das geht einfach mit pgAdmin.
  • Für pgAdmin und pgSql gibt es einen gemeinsamen Installer von EDB.
  • Datenbankname, Username und Passwort werden in der Konfigurationsdatei festgelegt.
  • In der pgSql Konfigurationsdatei postgresql.conf timezone auf 'UTC' setzen. Mit anderen timezone Einstellungen gibt es möglicherweise Fehler.

Eine ausführliche Installationsanleitung steht im Online-Tutorial.

Entwicklung

Die Applikation wird mit IntelliJ Community Edition entwickelt. Sinnvollerweise legt man dazu ein Go Projekt im $GOPATH Verzeichnis an. Dann kann das Projekt aus der IDE getartet werden.

Tutorial

Neben dem eigentlichen Zweck der Anwendung ist dies gleichzeitig eine Demo-Applikation für ein go Webapp Tutorial, in der verschiedene Bibliotheken benutzt werden, um eine vollständige Webanwendung zu entwickeln:

  • jinzhu/gorm für die persistente Speicherung von Go Objekten
  • gorilla web framework Komponenten für das Multiplexen von Http Requests, Sitzungsverwaltung, Login, xsrf protection und vieles mehr
  • justinas/alice für handler chaining
  • dchest/captcha für Captchas (completely automated public Turing test to tell computers and humans apart)
  • spf13/viper für Konfigurationsfiles
  • Bootstrap3 für responsives Web-Design
  • jQuery für dynamische Webseiten