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:
- Clone the repository
- Download and install XAMPP
- Start Apache and MySQL in XAMPP
- Open phpMyAdmin and import the database file
user_data.sql
, ensure database is calleduser_data
. - Fix index/Config/App.php to "localhost:8080":
- Fix index/Config/Database.php to match your local database
- Open the project folder in your IDE and run
php spark serve
in the terminal - Open
localhost:8080
in your browser
- Clone the repository
- Save the
index
folder invar/www/htdocs
in your UQCloud account. - Open phpMyAdmin and import the database file
user_data.sql
, ensure database is calleduser_data
. - Fix index/Config/App.php to match your UQCloud account
- Fix index/Config/Database.php to match your local database
- 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.
- 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)
- 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)
- Recommendation System: Users are recommended questions based on their interests and previous questions they have viewed. (Self-developed algorithm)