AMDP3 Final Project Submission.
Go to file
2019-11-20 12:18:48 +07:00
Application Selasa 19 November 2019 2019-11-20 12:18:48 +07:00
.htaccess Senin 18 November 2019 2019-11-19 02:18:37 +07:00
autoload.php Senin 18 November 2019 2019-11-19 02:18:37 +07:00
config.php Senin 18 November 2019 2019-11-19 02:18:37 +07:00
index.php Selasa 19 November 2019 2019-11-20 12:18:48 +07:00
README.md Senin 18 November 2019 2019-11-19 02:18:37 +07:00
routes.php Selasa 19 November 2019 2019-11-20 12:18:48 +07:00

Metaforums

An online web-based discussion forum application

How to set up

  1. Make sure mod_rewrite is enabled on Apache.
  2. Create a MySQL / MariaDB database, and import Metaforums' schema (schema.sql) into the database.
  3. Modify backend/config.php and adjust the configuration as needed.
  4. Point the browser to localhost

Project Structure

  • index.php The main handler of backend functions. Handles routing, loading of Application services, and response handling.
  • Application/ Application contains classes that are the core of the application itself
    • Assets/ Assets contains buildable assets, for example source CSS.
    • Controllers/ Controllers contain controllers that return HTTP responses
    • Foundations/ Foundations are helper classes for various functions, such as an SQL query builder, and base model implementation;
      • SQLHelper Contains SQL escaping facilities.
      • QueryBuilder The SQL query builder.
      • Model The base model implementation. Contains common code for all models.
    • HTTP HTTP contains a number of abstractions for HTTP, such as Request class.
    • Models/ Models contain database models.
    • Services/ Services contains a number of service classes for common functionality such as Database and Session.
      • Authentication Provide auth related services.
      • Config Loads configuration and provides a facility to access the contents.
      • Database A service that centralizes database access.
      • Email A service for sending email.
      • ServiceContainer A service container that ensures every service is loaded once.
      • Session A service that contains centralized session management.
      • View Provides view rendering facilities
    • Static/ Static contains static files served directly by the application. For example, this contains built CSS.
    • Views/ Views contains all views used by the application

Software Stack

The software is tested on the Apache server and PHP 7.3 on Arch Linux.

Backend

The database used is MariaDB 10.4.8

External frontend libraries used

jQuery

jQuery is a feature-rich JavaScript library.

Here, jQuery is mainly used for its AJAX functionality.

Project Website

CSS Frameworks and Styles used

Tailwind

Tailwind is a utility-first CSS framework for rapidly building custom designs

Project Website

Additional Development