Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions Config/Database_Connect.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
```php
<?php
class Database_Connect {
private $host = 'localhost';
private $db_name = 'database_name';
private $username = 'username';
private $password = 'password';
private $conn;

public function connect() {
$this->conn = null;

try {
$this->conn = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->db_name, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'Connection Error: ' . $e->getMessage();
}

return $this->conn;
}
}
?>
```
32 changes: 32 additions & 0 deletions Private/Controllers/Schedule_Controller.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
```php
<?php
require_once '../Config/Database_Connect.php';
require_once '../Models/Schedule_Model.php';

class Schedule_Controller {
private $db;
private $scheduleModel;

public function __construct() {
$this->db = new Database_Connect();
$this->scheduleModel = new Schedule_Model($this->db->connect());
}

public function createSchedule($userId, $scheduleData) {
return $this->scheduleModel->create($userId, $scheduleData);
}

public function getSchedule($userId) {
return $this->scheduleModel->get($userId);
}

public function updateSchedule($userId, $scheduleData) {
return $this->scheduleModel->update($userId, $scheduleData);
}

public function deleteSchedule($userId) {
return $this->scheduleModel->delete($userId);
}
}
?>
```
36 changes: 36 additions & 0 deletions Private/Controllers/Shift_Controller.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
```php
<?php
require_once '../Config/Database_Connect.php';
require_once '../Models/Shift_Model.php';

class Shift_Controller {
private $db;
private $shiftModel;

public function __construct() {
$this->db = new Database_Connect();
$this->shiftModel = new Shift_Model($this->db->connect());
}

public function createShift($shiftData) {
return $this->shiftModel->createShift($shiftData);
}

public function getShifts() {
return $this->shiftModel->getShifts();
}

public function getShiftById($shiftId) {
return $this->shiftModel->getShiftById($shiftId);
}

public function updateShift($shiftId, $shiftData) {
return $this->shiftModel->updateShift($shiftId, $shiftData);
}

public function deleteShift($shiftId) {
return $this->shiftModel->deleteShift($shiftId);
}
}
?>
```
47 changes: 47 additions & 0 deletions Private/Controllers/User_Controller.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
```php
<?php
require_once '../Config/Database_Connect.php';
require_once '../Models/User_Model.php';

class User_Controller {
private $db;
private $userModel;

public function __construct() {
$this->db = new Database_Connect();
$this->userModel = new User_Model($this->db->connect());
}

public function registerUser($username, $password, $email) {
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
$result = $this->userModel->createUser($username, $hashedPassword, $email);

if($result) {
return array('status' => 'SUCCESS', 'message' => 'User registered successfully');
} else {
return array('status' => 'ERROR', 'message' => 'Failed to register user');
}
}

public function loginUser($username, $password) {
$user = $this->userModel->getUserByUsername($username);

if($user && password_verify($password, $user['password'])) {
return array('status' => 'SUCCESS', 'message' => 'User logged in successfully');
} else {
return array('status' => 'ERROR', 'message' => 'Invalid username or password');
}
}

public function updateUserProfile($username, $email) {
$result = $this->userModel->updateUser($username, $email);

if($result) {
return array('status' => 'SUCCESS', 'message' => 'User profile updated successfully');
} else {
return array('status' => 'ERROR', 'message' => 'Failed to update user profile');
}
}
}
?>
```
38 changes: 38 additions & 0 deletions Private/Models/Schedule_Model.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
```php
<?php
require_once '../Config/Database_Connect.php';

class Schedule_Model {
private $db;

public function __construct() {
$this->db = new Database_Connect();
$this->db = $this->db->getDb();
}

public function getSchedule($id) {
$stmt = $this->db->prepare("SELECT * FROM schedules WHERE id = :id");
$stmt->execute(['id' => $id]);
return $stmt->fetch(PDO::FETCH_ASSOC);
}

public function createSchedule($data) {
$stmt = $this->db->prepare("INSERT INTO schedules (user_id, start_time, end_time) VALUES (:user_id, :start_time, :end_time)");
$stmt->execute(['user_id' => $data['user_id'], 'start_time' => $data['start_time'], 'end_time' => $data['end_time']]);
return $this->db->lastInsertId();
}

public function updateSchedule($id, $data) {
$stmt = $this->db->prepare("UPDATE schedules SET user_id = :user_id, start_time = :start_time, end_time = :end_time WHERE id = :id");
$stmt->execute(['id' => $id, 'user_id' => $data['user_id'], 'start_time' => $data['start_time'], 'end_time' => $data['end_time']]);
return $stmt->rowCount();
}

public function deleteSchedule($id) {
$stmt = $this->db->prepare("DELETE FROM schedules WHERE id = :id");
$stmt->execute(['id' => $id]);
return $stmt->rowCount();
}
}
?>
```
43 changes: 43 additions & 0 deletions Private/Models/Shift_Model.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
```php
<?php
require_once '../Config/Database_Connect.php';

class Shift_Model {
private $db;

public function __construct() {
$this->db = new Database_Connect();
$this->db = $this->db->connect();
}

public function createShift($shiftData) {
$query = "INSERT INTO shifts (shift_name, start_time, end_time) VALUES (:shift_name, :start_time, :end_time)";
$stmt = $this->db->prepare($query);
$stmt->execute($shiftData);
return $this->db->lastInsertId();
}

public function getShift($shiftId) {
$query = "SELECT * FROM shifts WHERE id = :id";
$stmt = $this->db->prepare($query);
$stmt->execute(['id' => $shiftId]);
return $stmt->fetch(PDO::FETCH_ASSOC);
}

public function updateShift($shiftId, $shiftData) {
$query = "UPDATE shifts SET shift_name = :shift_name, start_time = :start_time, end_time = :end_time WHERE id = :id";
$stmt = $this->db->prepare($query);
$shiftData['id'] = $shiftId;
$stmt->execute($shiftData);
return $stmt->rowCount();
}

public function deleteShift($shiftId) {
$query = "DELETE FROM shifts WHERE id = :id";
$stmt = $this->db->prepare($query);
$stmt->execute(['id' => $shiftId]);
return $stmt->rowCount();
}
}
?>
```
38 changes: 38 additions & 0 deletions Private/Models/User_Model.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
```php
<?php
require_once '../Config/Database_Connect.php';

class User_Model {
private $db;

public function __construct() {
$this->db = new Database_Connect();
$this->db = $this->db->getDb();
}

public function getUser($id) {
$stmt = $this->db->prepare("SELECT * FROM users WHERE id = :id");
$stmt->execute(['id' => $id]);
return $stmt->fetch(PDO::FETCH_ASSOC);
}

public function createUser($username, $password, $email) {
$stmt = $this->db->prepare("INSERT INTO users (username, password, email) VALUES (:username, :password, :email)");
$stmt->execute(['username' => $username, 'password' => password_hash($password, PASSWORD_DEFAULT), 'email' => $email]);
return $this->db->lastInsertId();
}

public function updateUser($id, $username, $password, $email) {
$stmt = $this->db->prepare("UPDATE users SET username = :username, password = :password, email = :email WHERE id = :id");
$stmt->execute(['id' => $id, 'username' => $username, 'password' => password_hash($password, PASSWORD_DEFAULT), 'email' => $email]);
return $stmt->rowCount();
}

public function deleteUser($id) {
$stmt = $this->db->prepare("DELETE FROM users WHERE id = :id");
$stmt->execute(['id' => $id]);
return $stmt->rowCount();
}
}
?>
```
27 changes: 27 additions & 0 deletions Private/Views/Schedule_View.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
```php
<?php
require_once '../Config/Database_Connect.php';
require_once '../Models/Schedule_Model.php';

class Schedule_View {
private $scheduleModel;

public function __construct() {
$this->scheduleModel = new Schedule_Model();
}

public function displayAllSchedules() {
$schedules = $this->scheduleModel->getAllSchedules();

foreach($schedules as $schedule) {
echo "<div class='schedule'>";
echo "<h2>" . $schedule['title'] . "</h2>";
echo "<p>" . $schedule['description'] . "</p>";
echo "<p>Start Date: " . $schedule['start_date'] . "</p>";
echo "<p>End Date: " . $schedule['end_date'] . "</p>";
echo "</div>";
}
}
}
?>
```
29 changes: 29 additions & 0 deletions Private/Views/Shift_View.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
```php
<?php
require_once '../Config/Database_Connect.php';
require_once '../Models/Shift_Model.php';

class Shift_View {
private $shiftModel;

public function __construct() {
$this->shiftModel = new Shift_Model();
}

public function displayShifts() {
$shifts = $this->shiftModel->getAllShifts();

foreach($shifts as $shift) {
echo "<div class='shift'>";
echo "<h2>" . $shift['shift_name'] . "</h2>";
echo "<p>Start Time: " . $shift['start_time'] . "</p>";
echo "<p>End Time: " . $shift['end_time'] . "</p>";
echo "</div>";
}
}
}

$shiftView = new Shift_View();
$shiftView->displayShifts();
?>
```
25 changes: 25 additions & 0 deletions Private/Views/User_View.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
```php
<?php
require_once '../Models/User_Model.php';
require_once '../Config/Database_Connect.php';

class User_View {
private $userModel;

public function __construct() {
$this->userModel = new User_Model(Database_Connect::getInstance());
}

public function displayUsers() {
$users = $this->userModel->getAllUsers();
foreach ($users as $user) {
echo "<div class='user'>";
echo "<h2>" . htmlspecialchars($user['name']) . "</h2>";
echo "<p>Email: " . htmlspecialchars($user['email']) . "</p>";
echo "<p>Role: " . htmlspecialchars($user['role']) . "</p>";
echo "</div>";
}
}
}
?>
```
Loading