Skip to content

Latest commit

 

History

History
64 lines (54 loc) · 3.33 KB

README.md

File metadata and controls

64 lines (54 loc) · 3.33 KB

SOStudent

A student discussion board created in PHP using CI4 framework.

This app was created during INFS3202 - Web Information Systems course at UQ during 2023 Semester 1 - (February 2023 - June 2023). This project was developed in one month under a deep schedule (see ProjectProposal.pdf)

You can find a deployed version here: UQCloud Deployment has been terminated.

  • Frontend: HTML, CSS, JavaScript, Bootstrap
  • Backend: PHP, CodeIgniter 4
  • Database: MySQL

Many libraries were used, these include:

Installation (Local)

  1. Clone the repository
  2. Download and install XAMPP
  3. Start Apache and MySQL in XAMPP
  4. Open phpMyAdmin and import the database file user_data.sql, ensure database is called user_data.
  5. Fix index/Config/App.php to "localhost:8080":
  6. Fix index/Config/Database.php to match your local database
  7. Open the project folder in your IDE and run php spark serve in the terminal
  8. Open localhost:8080 in your browser

Deploying to UQCloud

  1. Clone the repository
  2. Save the index folder in var/www/htdocs in your UQCloud account.
  3. Open phpMyAdmin and import the database file user_data.sql, ensure database is called user_data.
  4. Fix index/Config/App.php to match your UQCloud account
  5. Fix index/Config/Database.php to match your local database
  6. Accessing https://infs3202-########.uqcloud.net/index should now show the website

You may rename the domain by changing the index folder name to your desired domain name. Then, you must change the index/Config/App.php to match the new domain name.

Basic Features

  • Remember me: Users can choose to be remembered for 30 days
  • User profile updating: Users can update their profile information
  • Web security: Passwords are hashed and salted
  • Questions: Author can post and delete questions
  • Favourites: Users can favourite questions
  • Basic file upload: Users can upload files to questions
  • Add comments: Users can add comments to questions
  • Image processing: Images are resized and compressed before being uploaded (Imagick)
  • Authorisation: Redirect to login page if not logged in and back to previous page after login
  • Drag and drop: Users can drag and drop files to upload (Dropzone.js)
  • Multiple file upload: Users can upload multiple files at once (Dropzone.js)
  • Web Security: recaptcha v2 is used to prevent bots from spamming (Google)
  • Search box autocomplete: Users can search for questions (JQuery UI)
  • Sophisticated UI Design: The website is responsive and looks good on all devices (Bootstrap)

Intermediate Features

  • Email Verification: Users must verify their email before they can login
  • Password Reset: Users can reset their password if they forget it
  • Bookmark Questions: Users can bookmark questions
  • Search: Users can search for questions (JQuery)

Advanced Features

  • Recommendation System: Users are recommended questions based on their interests and previous questions they have viewed. (Self-developed algorithm)