Skip to content

alfianchii/confess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.

# App
APP_ENV=production
APP_DEBUG=false
APP_URL=127.0.0.1
APP_PORT=8002

# DB
DB_HOST=mariadb
DB_DATABASE=confess
DB_USERNAME=your-vps-username
DB_PASSWORD=your-vps-password
  • Let's build with docker compose -f ./docker-compose.prod.yaml up -d --build command.

  • Install its dependencies.

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

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

  • Setup your domain and SSL certificate with Nginx configuration:

server {
  server_name your-domain.com www.your-domain.com;

  location / {
    proxy_pass http://127.0.0.1:8002;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }

  error_log /var/log/nginx/your-domain_error.log;
  access_log /var/log/nginx/your-domain_access.log;
}
  • Setup SSL certificate with Certbot:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com -d www.your-domain.com
sudo ln -s /etc/nginx/sites-available/your-domain.com /etc/nginx/sites-enabled/
sudo systemctl reload nginx
  • 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.

About

A website for student complaint reporting built with Laravel 9

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •