https://github.com/adifaidz/contactout-test
A laravel project for ContactOut test
https://github.com/adifaidz/contactout-test
Last synced: about 2 months ago
JSON representation
A laravel project for ContactOut test
- Host: GitHub
- URL: https://github.com/adifaidz/contactout-test
- Owner: adifaidz
- Created: 2022-07-04T15:37:15.000Z (over 3 years ago)
- Default Branch: develop
- Last Pushed: 2022-07-14T19:46:56.000Z (about 3 years ago)
- Last Synced: 2025-01-11T23:23:29.833Z (9 months ago)
- Language: PHP
- Size: 735 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# README
## Introduction
This project uses [Laravel 8](https://laravel.com/docs/8.x), [InertiaJS](https://inertiajs.com/), [React](https://reactjs.org/) and [Tailwind](https://tailwindcss.com/). All the auths related stuff had been scaffolded using L[aravel Breeze](https://laravel.com/docs/8.x/starter-kits#laravel-breeze).For testing, it mainly uses [Pest](https://pestphp.com/) (aside from the scaffolded Laravel Breeze tests) and [Laravel Dusk](https://laravel.com/docs/8.x/dusk#main-content) for e2e testing.
For demo on the application and brief explanation on the code refer to these:
- Application Demo:
- [Part One](https://share.vidyard.com/watch/Ea5zioYnB2d9TcUNy1eEkW?)
- [Part Two](https://share.vidyard.com/watch/hM9USawLVPDLKnvWb9Cqha?)
- Code and design decision:
- [Part One](https://share.vidyard.com/watch/DukngfacTuZ5AbdxSKP3SU?)
- [Part Two](https://share.vidyard.com/watch/VXB8B2YbnWihPej9dNDnZg?)
## First time setup
Once done pulling the repo :
- Run `composer install`
- Setup the environment variables in `.env` ( Most important database stuffs )
- Run `npm install && npm run dev`
- Run `php artisan queue:work` if queueing is enabled
- Finally run `php artisan serve` or any equivalent command to start your laravel server.## How to test
To run test you can these commands:
```
// To run feature and unit tests
./vendor/bin/pest// To run e2e tests ( Laravel Dusk )
php artisan pest:dusk
```To configure testing environment, you can refer to this [Laravel Documentation](https://laravel.com/docs/8.x/testing#environment)
## Features
### Key features
#### Auth
- User can register and login
- User must verify email
- User can reset password#### Referral
- User has referral code on register ( configurable length)
- User can invite multiple emails
- User cannot invite existing users
- User cannot reinvite already invited emails
- User can gain 1 point with each successful referral
- User has a limit of 10 point ( configurable limit)### Events and Notifications
This app uses events and notifications . Here's a list of them:#### Events
- Registered
- SendEmailVerificationNotification
- UpdateSuccessReferral#### Notifications
- VerifyEmail
- ReferralInvitation
- ReferralSuccessEmail