Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alfianchii/confess

A website for student complaint reporting built with Laravel 9
https://github.com/alfianchii/confess

application laravel school

Last synced: 2 months ago
JSON representation

A website for student complaint reporting built with Laravel 9

Awesome Lists containing this project

README

        

Welcome to Confess! ๐Ÿ‘‹

![Landing Page](https://github.com/alfianchii/confess/blob/main/public/images/confess-welcome.png?raw=true)

[![All Contributors](https://img.shields.io/github/contributors/alfianchii/confess)](https://github.com/alfianchii/confess/graphs/contributors)
![GitHub last commit](https://img.shields.io/github/last-commit/alfianchii/confess)

---

๐Ÿค” 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](https://github.com/zuramai/mazer)
- 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](https://alfianxi.my.id).

๐Ÿ’พ 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

```bash
git clone https://github.com/alfianchii/confess
cd confess
composer install
npm install
cp .env.example .env
```

2. Database configuration through the `.env` file

```conf
APP_DEBUG=true
DB_DATABASE=confess
DB_USERNAME=your-username
DB_PASSWORD=your-password
```

3. Migration and symlink

```bash
php artisan key:generate
php artisan storage:link
php artisan migrate --seed
```

4. Launch the website

```bash
npm run dev
# Run in different terminal
php artisan serve
```

๐Ÿณ Develop w/ Docker

- Clone the repository:

```bash
git clone https://github.com/alfianchii/confess
cd confess
```

- Copy `.env.example` file with `cp .env.example .env` and configure database:

```conf
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:

```bash
docker compose up --build -d
```

- Install dependencies:

```bash
docker compose run --rm composer install
docker compose run --rm npm install
```

- Laravel setups:

```bash
docker compose run --rm laravel-setup
```

- Run locally:

```bash
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 [email protected]:alfianchii/confess` and go to the directory with `cd confess` command.

- Copy `.env.example` file to `.env` and do configs.

```conf
# Replace its values to your actual domain and your active email
DOMAIN=your-domain.com
[email protected]
# 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.

```bash
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](./LICENSE).

๐Ÿง Author

Confess is created by Alfian and Surya.