Dag iedereen,
Na een tijd schoolmanagementsystemen te maken wilde ik aan een nieuw project beginnen.
Ik heb even zitten denken en ik dacht in mijzelf laat ik eens een ziekenhuismanagement systeem ontwikkelen.
Daar ben ik sinds een maand aan bezig. Het moet een uitgebreid systeem worden.
Wat worden de functies?
Elk ziekenhuis krijgt een apart subdomein bijvoorbeeld: test.ziekenhuis.be
Een ziekenhuis kan zelf alle rechten bepalen en ook beslissen of patiƫnten kunnen inloggen of niet.
Een systeem waarmee dossiers kunnen worden aangemaakt.
Alle data van patiƫnten zal worden versleuteld in de database en niet in plaintext worden opgeslagen.
Elk ziekenhuis zal een aparte database krijgen.
stukjes code
index.php
<?php
/**
* Created by PhpStorm.
* User: jitse
* Date: 1/11/2017
* Time: 10:11
*/
use Ziekenhuis\Core\Managers\SessionManager;
use Ziekenhuis\Core\Platform;
define('INDEX', 'OK!');
define('DOCROOT', $_SERVER['DOCUMENT_ROOT']);
require_once '../includes/functions.inc.php';
//Start the sessions!
SessionManager::startSessions();
//Start the platform session
Platform::startSession();
//Eerst nakijken of het platform wel bestaat!
if(Platform::exist()) {
$kernel = new \Ziekenhuis\Core\Kernel();
$kernel->run();
}else {
die('We kunnen het platform niet vinden!');
}
functions.inc.php:
<?php
if(!defined('INDEX')){
die('Geen toegang!');
}
set_error_handler('logErrors');
//Haalt de autoloader op!
require __DIR__.'/../vendor/autoload.php';
//krijgt een subdomein als test.ziekenhuis.be
function getSubdomain(){
$subDomain = explode('.', $_SERVER['HTTP_HOST']);
return $subDomain[0];
}
function logErrors($errno, $errstr, $errfile, $errline, $errcontext) {
//Get the connection
$logDB = new Ziekenhuis\Db\Database('logdb');
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$ip = $_SERVER['REMOTE_ADDR'];
$userID = isset($_SESSION['uid']) ? $_SESSION['uid'] : 0;
$errcontext = '--';
$query = $logDB->getConnection()->prepare('INSERT INTO errorlog(`platform`, `type`, `error`, `file`, `line`, `context`, `userAgent`, `userID`, `ip`, `date`) VALUES(?,?,?,?,?,?,?,?,?,?) ');
$query->execute(array(getSubdomain(),$errno,$errstr,$errfile,$errline,$errcontext,$userAgent,$userID,$ip,time()));
}
user class: (Nog niet volledig afgewerkt)
<?php
/**
* Created by PhpStorm.
* User: jitse
* Date: 11/11/2017
* Time: 21:10
*/
namespace Ziekenhuis\User;
use Ziekenhuis\Core\Platform;
class User
{
private $dbConnection;
private $id;
public function __construct($id)
{
$this->setID((int)$id);
$this->dbConnection = Platform::getDB();
}
public function setID($id){
$this->id = $id;
}
public function getScreenName(){
$query = $this->dbConnection->prepare('SELECT id,screenname FROM users WHERE id=?');
$query->execute(array($this->id));
foreach($query as $data){
return $data['screenname'];
}
return null;
}
public function getUserName(){
$query = $this->dbConnection->prepare('SELECT id,username FROM users WHERE id=?');
$query->execute(array($this->id));
foreach($query as $data){
return $data['username'];
}
return null;
}
public function getPermissionGroupName(){
$query = $this->dbConnection->prepare('SELECT * FROM user_roles as ur,permissions as p WHERE ur.userID=? AND p.id=ur.permID');
$query->execute(array($this->id));
foreach($query as $data){
return $data['name'];
}
return null;
}
public function getPermissionGroup(){
$query = $this->dbConnection->prepare('SELECT * FROM user_roles WHERE userID=?');
$query->execute(array($this->id));
foreach($query as $data){
return $data['permID'];
}
return 0;
}
public function hasPermission($groupID,$action,$module){
$query = $this->dbConnection->prepare('SELECT * FROM permission_data WHERE permID=? AND action=? AND module=? ');
$query->execute(array($groupID,$action,$module));
return $query->rowCount() > 0 ? true : false;
}
public function isAdministrator($module){
$query = $this->dbConnection->prepare('SELECT * FROM permission_data WHERE permID=? AND action="*" AND module=? ');
$query->execute(array($this->getPermissionGroup(),$module));
return $query->rowCount() > 0 ? true : false;
}
}
Momenteel kan ik nog niet meer over dit project vertellen. Vragen en tips zijn altijd welkom!