Skip to content

Commit

Permalink
Merge pull request #3 from AlexanderKaschta/development
Browse files Browse the repository at this point in the history
Version 1.1.0
  • Loading branch information
AlexanderKaschta authored Oct 22, 2020
2 parents 955779a + 4a9f73b commit 9d33d68
Show file tree
Hide file tree
Showing 25 changed files with 269 additions and 101 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ A school course election system
## Status
![License](https://img.shields.io/badge/license-MIT-success.svg)
![Status](https://img.shields.io/badge/status-working-success.svg)
![Version](https://img.shields.io/badge/Version-1.1.0-orange)

The system if completely working and there are no known bugs. Be aware, that the
system and the documentation are in **German** and there is no translation yet.

## Description
The goal was to create an online system, where teacher could easily create elections for
Expand Down
10 changes: 4 additions & 6 deletions config_wahl.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
<link rel="stylesheet" href="css/all.min.css">
<title><?php echo PROJECT_NAME . " | " . $pageTitle; ?></title>
</head>
<body>
<body class="d-flex flex-column min-vh-100">
<header>
<div class="navbar navbar-dark bg-dark shadow-sm">
<div class="container d-flex justify-content-between">
Expand Down Expand Up @@ -317,11 +317,9 @@ class="fas fa-chevron-left fa-sm fa-fw"></i>&nbsp;Zurück zur Übersicht</a>
</main>
</div>

<footer class="text-muted">
<div class="container">
<p>WeidigWahl | Ein Wahlsystem für die Weidigschule</p>
</div>
</footer>
<div class="mt-auto">
<?php include "core/include/footer.php"; ?>
</div>

<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="js/popper.min.js"></script>
Expand Down
6 changes: 5 additions & 1 deletion core/.htaccess
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
Options -Indexes
Options -Indexes

<Files config.php>
Require all denied
</Files>
2 changes: 1 addition & 1 deletion core/Database.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public function connect(){
} else{
$dsn = "mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=utf8";
try{
$this->pdo = new PDO($dsn, DB_USER, DB_PASSWORT, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
$this->pdo = new PDO($dsn, DB_USER, DB_PASSWORT, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES => false]);
$this->is_connected = true;
return $this->pdo;
}catch (PDOException $ex){
Expand Down
39 changes: 37 additions & 2 deletions core/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,50 @@
* License: MIT License
*/

// TECHNISCHE KONFIGURATION

// Datenbank
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORT", "");
define("DB_NAME", "weidigwahl");

// Versionsnummer
define("PROJECT_VERSION", "1.1.0");

// GitHub-Link
define("GITHUB_LINK", "https://www.github.com/AlexanderKaschta/WeidigWahl");

// SICHERHEIT

// Passwortlänge
define("PASSWORD_LENGTH", 8);

// ALLGEMEIN
define("PROJECT_NAME", "WeidigWahl");

define("PROJECT_VERSION", "1.0.1");
// Name der Schule, die das System verwendet
define("SCHOOL", "Weidigschule");

//Beispiel für die E-Mail-Adresse des Administrators
// Verantortlicher Administrator an der Schule für die Nutzung des Systens
define("ADMINISTRATOR", "Hr. Mustermann");

// Jahr, in dem das System in Betrieb genommen wurde
define("RELEASE_YEAR", 2019);


// BENUTZEROBERFLÄCHE

//Soll der Link zum GitHub-Repository in Footer angezeigt werden
define("SHOW_GITHUB", true);

//Soll das Impressum angezeigt werden
define("SHOW_IMPRINT", true);
define("IMPRINT_LINK", "");

define("SHOW_DSGVO", true);
define("DSGVO_LINK", "");

define("SHOW_SCHOOL_LINK", true);
define("SCHOOL_LINK", "");

7 changes: 7 additions & 0 deletions core/include/.htaccess
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Options -Indexes

Require all denied

<Files action_page.php>
Require all granted
</Files>
52 changes: 52 additions & 0 deletions core/include/footer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php
require_once("core/config.php");
$creation_year = RELEASE_YEAR;
$current_year = date("Y");

$anzahl = 0;

if (SHOW_GITHUB) {
$anzahl++;
}

if (SHOW_IMPRINT) {
$anzahl++;
}

if (SHOW_DSGVO) {
$anzahl++;
}

if (SHOW_SCHOOL_LINK) {
$anzahl++;
}

$width = 12 / $anzahl;

?>

<footer class="text-muted">
<div class="container">
<p><b>WeidigWahl | Ein Wahlsystem für die <?php echo SCHOOL; ?></b></p>
<p>&copy; <?php echo $creation_year . (($creation_year != $current_year) ? '-' . $current_year : '') . " " . SCHOOL; ?></p>
<hr class="col-xs-12">
<div class="row">
<?php

if (SHOW_SCHOOL_LINK) {
echo '<div class="col-md-'.$width.'"><a href="'.SCHOOL_LINK.'" class="text-muted">Schule</a></div>';
}
if (SHOW_GITHUB) {
echo '<div class="col-md-'.$width.'"><a href="'.GITHUB_LINK.'" class="text-muted">GitHub</a></div>';
}
if (SHOW_IMPRINT) {
echo '<div class="col-md-'.$width.'"><a href="'.IMPRINT_LINK.'" class="text-muted">Impressum</a></div>';
}
if (SHOW_DSGVO) {
echo '<div class="col-md-'.$width.'"><a href="'.DSGVO_LINK.'" class="text-muted">Datenschutz</a></div>';
}

?>
</div>
</div>
</footer>
6 changes: 5 additions & 1 deletion core/parseStudentCSV.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,11 @@ function generateUsername($vorname, $nachname){
}

function generatePassword(){
$length = 8;
if (defined(PASSWORD_LENGTH) && PASSWORD_LENGTH >= 8) {
$length = PASSWORD_LENGTH;
} else {
$length = 8;
}
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-#@%$/()?.=*!';
return substr( str_shuffle( $chars ), 0, $length );
}
Expand Down
11 changes: 5 additions & 6 deletions create_User.php
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@
<meta name="theme-color" content="#212529">
<title><?php echo PROJECT_NAME . " | " . $pageTitle; ?></title>
</head>
<body>
<body class="d-flex flex-column min-vh-100">
<header>
<div class="navbar navbar-dark bg-dark shadow-sm">
<div class="container d-flex justify-content-between">
Expand Down Expand Up @@ -174,11 +174,10 @@
</main>
</div>

<footer class="text-muted">
<div class="container">
<p>WeidigWahl | Ein Wahlsystem für die Weidigschule</p>
</div>
</footer>
<div class="mt-auto">
<?php include "core/include/footer.php"; ?>
</div>

<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="js/popper.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
Expand Down
Binary file modified documentation/documentation.pdf
Binary file not shown.
92 changes: 90 additions & 2 deletions documentation/documentation.tex
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@

\title{Technische Dokumentation der Software \name}
\author{Alexander Kaschta \\ \url{https://github.com/AlexanderKaschta}}
\date{1.0.1 ~---~ \today}
\date{1.1.0 ~---~ \today}

\begin{document}

Expand Down Expand Up @@ -326,7 +326,7 @@ \subsection{Konfiguration}
werden.
}

\DescribeOption{PROJECT\_VERSION}{Versionsnummer der Software}{1.0.0}{
\DescribeOption{PROJECT\_VERSION}{Versionsnummer der Software}{1.1.0}{
Dies ist die Versionsnummer der aktuell installierten Software. Diese wird nur
intern verwendet und \textbf{sollte nicht} geändert werden.
}
Expand All @@ -337,6 +337,76 @@ \subsection{Konfiguration}
oder irgendwelche unerwarteten Fehler aufgetreten sind.
}

\DescribeOption{GITHUB\_LINK}{GitHub-Link}{https://www.github.com/AlexanderKaschta/WeidigWahl}{
Dies ist der Link zum GitHub-Repository dieser Anwendung. Diese wird nur
intern verwendet und \textbf{sollte nicht} geändert werden.\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

\DescribeOption{PASSWORD\_LENGTH}{Passwortlänge}{8}{
Hiermit wird die Länge der automatisch generierten Passwörter festgelegt. Ist diese
Variable nicht angegeben oder ist die eingetragene Länge kleiner als \textbf{8},
so wird die Länge \textbf{8} verwendet. Ansonsten wird die angegebene Länge verwendet.
Der ganze Mechanismus dient dazu, dass keine wirklich unsicheren Passwörter erstellt
werden.\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

\DescribeOption{SCHOOL}{Schule}{Weidigschule}{
Dies ist der Name der Schule, die dieses System verwendet. Der Name wird nur im
Footer verwendet und dort an zwei Stellen angezeigt. Einmal als Schule, die das
System verwendet und das zweite Mal im Copyright-Vermerk.\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

\DescribeOption{RELEASE\_YEAR}{Installationsjahr}{2020}{
Das ist das Jahr indem die Software installiert wurde. Diese wird im Footer verwendet
und ist das Startjahr in der Copyrightangabe.\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

\DescribeOption{SHOW\_GITHUB}{Soll der Link zu GitHub im Footer angezeigt werden?}{true}{
Soll die Verlinkung zu GitHub angezeigt werden? Diese darf nur dann abgeschaltet werden,
wenn die Namensnennung und Lizenznennung woanders auf der Seite erfolgt.\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

\DescribeOption{SHOW\_IMPRINT}{Soll ein Link zum Impressum im Footer angezeigt werden?}{true}{
Soll ein Link zum Impressum im Footer angezeigt werden?\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

\DescribeOption{IMPRINT\_LINK}{Link zum Impressum}{https://www.musterseite.de/impressum}{
Dies ist der Link zum Impressum, welcher verwendet wird, um auf das Impressum
zu verlinken. Dieser muss gesetzt sein, wenn der Link zum Impressum angezeigt werden
soll.\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

\DescribeOption{SHOW\_DSGVO}{Soll ein Link zur Datenschutzerklärung im Footer angezeigt werden?}{true}{
Soll ein Link zur Datenschutzerklärung im Footer angezeigt werden?\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

\DescribeOption{DSGVO\_LINK}{Link zur Datenschutzerklärung}{https://www.musterseite.de/datenschutz}{
Dies ist der Link zur Datenschutzerklärung, welcher verwendet wird, um auf die Datenschutzerklärung
zu verlinken. Dieser muss gesetzt sein, wenn der Link zur Datenschutzerklärung angezeigt werden
soll.\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

\DescribeOption{SHOW\_SCHOOL\_LINK}{Soll ein Link zur Schule im Footer angezeigt werden?}{true}{
Soll im Footer ein Link zur Schule angezeigt werden?\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

\DescribeOption{SCHOOL\_LINK}{Link zur Schule}{https://www.musterseite.de/}{
Dies ist der Link zur Schule, welcher verwendet wird, um auf die Seite der Schule
zu verlinken. Dieser muss gesetzt sein, wenn der Link zur Schule angezeigt werden
soll.\\
Neu ab \hyperref[subsec:ver_1.1.0]{Version 1.1.0}.
}

Sobald die Konfigurationsdatei entsprechend den Bedürfnissen mit einem Texteditor
angepasst worden ist, kann man die Software bereitgestellt\footnote{veröffentlichen}.

Expand Down Expand Up @@ -1037,8 +1107,25 @@ \section{Vorlage}
welches auf \href{https://github.com/matze/mtheme}{GitHub} gefunden werden kann.

\section{Versionsgeschichte}
\label{sec:ver}

\subsection*{Version 1.1.0}
\label{subsec:ver_1.1.0}

\begin{itemize}
\item Footer wird nun per \verb+include()+ eingebunden
\item Automatische Erneurung des Copyright
\item Verlinkung zum GitHub-Repository im Footer
\item Verlinkungsmöglichkeit im Footer für das Impressum
\item Verlinkungsmöglichkeit im Footer für die Datenschutzerklärung
\item Verlinkungsmöglichkeit im Footer zur Schule
\item Die Länge der automatisch generierten Passwörter kann nun eingestellt werden
\item Fehlerbehebung einer falschen Verlinkung auf der Startseite \verb+index.php+
\item Aktualisierung der \verb+.htaccess+-Dateien
\end{itemize}

\subsection*{Version 1.0.1}
\label{subsec:ver_1.0.1}

\begin{itemize}
\item Einführung einer Dokumentation für das gesamte System
Expand All @@ -1051,6 +1138,7 @@ \subsection*{Version 1.0.1}
\end{itemize}

\subsection*{Version 1.0.0}
\label{subsec:ver_1.0.0}

Ursprüngliche Einführung.

Expand Down
11 changes: 4 additions & 7 deletions editKurs.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,11 @@
<link rel="stylesheet" href="css/dashboard.css">
<title><?php echo PROJECT_NAME . " | " . $pageTitle; ?></title>
</head>
<body>
<body class="d-flex flex-column min-vh-100">
<header>
<div class="navbar navbar-dark bg-dark shadow-sm">
<div class="container d-flex justify-content-between">
<a href="main.php" class="navbar-brand d-flex align-items-center">
<!-- Optional svg logo-->
<strong><?php echo PROJECT_NAME;?></strong>
</a>
<ul class="navbar-nav">
Expand Down Expand Up @@ -75,11 +74,9 @@
</main>
</div>

<footer class="text-muted">
<div class="container">
<p>WeidigWahl | Ein Wahlsystem für die Weidigschule</p>
</div>
</footer>
<div class="mt-auto">
<?php include "core/include/footer.php"; ?>
</div>

<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="js/popper.min.js"></script>
Expand Down
8 changes: 6 additions & 2 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
<link rel="stylesheet" href="css/dashboard.css">
<title><?php echo PROJECT_NAME . " | " . $pageTitle; ?></title>
</head>
<body>
<body class="d-flex flex-column min-vh-100">
<header>
<div class="navbar navbar-dark bg-dark shadow-sm">
<div class="container d-flex justify-content-between">
<a href="main.php" class="navbar-brand d-flex align-items-center">
<a href="index.php" class="navbar-brand d-flex align-items-center">
<strong><?php echo PROJECT_NAME;?></strong>
</a>
</div>
Expand Down Expand Up @@ -76,6 +76,10 @@
</div>
</div>

<div class="mt-auto">
<?php include "core/include/footer.php"; ?>
</div>

<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="js/popper.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
Expand Down
Loading

0 comments on commit 9d33d68

Please sign in to comment.