/confess

A website for student complaint reporting built with Laravel 9

Primary LanguageJavaScriptMIT LicenseMIT

Welcome to Confess! ๐Ÿ‘‹

Landing Page

All Contributors GitHub last commit


๐Ÿค” What is Confess?

Confess is a school complaint reporting application that enables students to submit their issues, grievances, suggestions, criticisms, and even confessions online.

๐Ÿคจ What features are available in Confess?

  • Mazer Bootstrap Template
    • Dark and light mode
    • Dashboard UI
  • Landing Page
    • Homepage
    • About
    • Confession
    • Comment
    • Confession's category
  • Authentication
    • Registration
    • Login
  • Multi User
    • Admin
      • History login, confession, response, and comment statistics (full overview)
      • Manageable users
      • Manageable confession's categories
      • Manageable website informations
      • Deactivate their own account
    • Officer
      • History login, confession, response, and comment statistics (half overview)
      • Handling student's confessions
    • Student
      • History login, confession, response, and comment statistics (shallow overview)
      • Submit confessions
    • All
      • Comment to a confession on Landing Page
      • Account
      • Export data
  • Account
    • Profile
    • Setting
    • Change Password
  • Searchable Landing Page
    • Confessions
    • Confession's categories

๐Ÿ‘ค Default account for testing

๐Ÿ‘จโ€๐Ÿซ Admin

  • Username: alfianchii
  • Password: admin123

๐Ÿง– Officer

  • Username: moepoi
  • Password: officer123

๐Ÿง— Student

  • Username: nata.ardhana
  • Password: student123

๐Ÿ  Demo page

To view further details, please visit demo page.

๐Ÿ’พ Pre-requisite

Here are the prerequisites required for installing and running the application.

  • PHP 8.2.8 & Web Server (Apache, Lighttpd, or Nginx)
  • Database (MariaDB w/ v11.0.3 or PostgreSQL)
  • Web Browser (Firefox, Safari, Opera, or Brave)

๐Ÿ’ป Installation

๐Ÿƒโ€โ™‚๏ธ Develop by yourself

1. Clone repository
git clone https://github.com/alfianchii/confess
cd confess
composer install
npm install
cp .env.example .env
  1. Database configuration through the .env file
APP_DEBUG=true
DB_DATABASE=confess
DB_USERNAME=your-username
DB_PASSWORD=your-password
  1. Migration and symlink
php artisan key:generate
php artisan storage:link
php artisan migrate --seed
  1. Launch the website
npm run dev
# Run in different terminal
php artisan serve

๐Ÿณ Develop w/ Docker

  • Clone the repository:
git clone https://github.com/alfianchii/confess
cd confess
  • Copy .env.example file with cp .env.example .env and configure database:
APP_DEBUG=true
DB_HOST=mariadb
DB_DATABASE=confess
DB_USERNAME=your-username
DB_PASSWORD=your-password
  • Make sure you have Docker installed and run:
docker compose up --build -d
  • Install dependencies:
docker compose run --rm composer install
docker compose run --rm npm install
  • Laravel setups:
docker compose run --rm laravel-setup
  • Run locally:
docker compose run --rm --service-ports npm run dev
  • Pages
    • App: http://127.0.0.1
    • PhpMyAdmin: http://127.0.0.1:8888
    • MailHog: http://127.0.0.1:8025

๐Ÿ” Commands

  • Composer

    • docker-compose run --rm composer install
    • docker-compose run --rm composer require laravel/breeze --dev
    • Etc
  • NPM

    • docker-compose run --rm npm install
    • docker-compose run --rm --service-ports npm run dev
    • Etc
  • Artisan

    • docker-compose run --rm artisan serve
    • docker-compose run --rm artisan route:list
    • Etc

๐ŸŒ Production

๐Ÿณ Deployment w/ Docker (use Virtual Private Server)

  • Clone the repository w/ SSH method git clone git@github.com:alfianchii/confess and go to the directory with cd confess command.

  • Copy .env.example file to .env and do configs.

# Replace its values to your actual domain and your active email
DOMAIN=your-domain.com
EMAIL=your-email@gmail.com
# App
APP_ENV=production
APP_DEBUG=false
APP_URL=${DOMAIN}
# DB
DB_HOST=mariadb
DB_DATABASE=confess
DB_USERNAME=your-vps-username
DB_PASSWORD=your-vps-password
  • Open ./docker-compose.prod.yaml, remove --staging option on nginx service.

  • On ./docker/nginx/default.prod.conf, set your own domain.

  • Let's build with docker compose -f ./docker-compose.prod.yaml up -d --build command.

  • Install its dependencies.

docker compose run --rm composer install --optimize-autoloader --no-dev
docker compose run --rm npm install
  • Build the assets with dockerized Vite.js command: docker compose run --rm npm run build.

  • Do Laravel setups with existing Docker's custom command: docker compose run --rm laravel-setup.

  • Congrats! Your app is ready to be served. You can access it on your domain and with HTTPS protocol~

๐Ÿ’Œ Support me

You can support me on the Trakteer platform! Your support will be very meaningful. Like, just giving a star to this project is already greatly appreciated~!

Trakteer Me

๐Ÿค Contributing

Contributions, issues, and feature requests are highly appreciated as this application is far from perfect. Please do not hesitate to make a pull request and make changes to this project!

๐Ÿ“ License

Confess is open-sourced software licensed under the MIT License.

๐Ÿง Author

Confess is created by Alfian and Surya.