gostip

module
v0.0.0-...-0ad18f3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 8, 2017 License: MIT

README

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

Directories

Path Synopsis
go
controller
Package controller holds all handlers and handler functions as well as necessary infrastructure for session management and security work.go implements all controller actions and their helper functions for the parent work.html template.
Package controller holds all handlers and handler functions as well as necessary infrastructure for session management and security work.go implements all controller actions and their helper functions for the parent work.html template.
model
Package model implementiert die structs, die in die Datenbank abgebildet werden.
Package model implementiert die structs, die in die Datenbank abgebildet werden.
view
Parse all templates once and make them globally available
Parse all templates once and make them globally available

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL