60 lines
1.9 KiB
Markdown
60 lines
1.9 KiB
Markdown
|
# Metaforums
|
||
|
An online web-based discussion forum application
|
||
|
|
||
|
## Project Structure
|
||
|
This project is separated between the frontend and the backend application.
|
||
|
- backend/
|
||
|
The backend of this application is written in PHP, and is API focused.
|
||
|
- index.php
|
||
|
The main handler of backend functions. Handles routing, loading of Mitsumine services, and conversion of array responses to JSON.
|
||
|
- Mitsumine/
|
||
|
Mitsumine is a set of custom-written helper classes to consolidate frequently used code.
|
||
|
- Mitsumine/HTTP
|
||
|
Mitsumine HTTP contains a number of abstractions for HTTP, such as Request class
|
||
|
- Mitsumine/Services
|
||
|
Mitsumine Services contains a number of service classes for common functionality such as Database and Session.
|
||
|
- Application/
|
||
|
Application contains classes that are the core of the application itself
|
||
|
- Controllers/
|
||
|
Controllers contain controllers that return HTTP responses
|
||
|
- frontend/
|
||
|
The frontend of this application, written in HTML and utilizes T
|
||
|
- index.php
|
||
|
This index file allows serving both frontend and backend from one endpoint.
|
||
|
|
||
|
## 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
|
||
|
|
||
|
### Vue.js
|
||
|
|
||
|
Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web
|
||
|
|
||
|
Vue.js allows for interactivity while being less cumbersome than manipulating the DOM manually e.g. with jQuery.
|
||
|
|
||
|
[Project Website](https://vuejs.org)
|
||
|
|
||
|
### jQuery
|
||
|
|
||
|
jQuery is a feature-rich JavaScript library.
|
||
|
|
||
|
Here, jQuery is mainly used for its AJAX functionality.
|
||
|
|
||
|
[Project Website](https://jquery.com)
|
||
|
|
||
|
## CSS Frameworks and Styles used
|
||
|
|
||
|
### Tailwind
|
||
|
|
||
|
Tailwind is a utility-first CSS framework for rapidly building custom designs
|
||
|
|
||
|
[Project Website](https://tailwindcss.com)
|
||
|
|
||
|
## Additional Development
|