PHPackages                             unicodeveloper/laravel-hackathon-starter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. unicodeveloper/laravel-hackathon-starter

ActiveProject[Framework](/categories/framework)

unicodeveloper/laravel-hackathon-starter
========================================

Boilerplate for building MVP web applications with Laravel &amp; getting ahead in Hackathons

1.0.0(10y ago)1.7k299294[7 issues](https://github.com/unicodeveloper/laravel-hackathon-starter/issues)[2 PRs](https://github.com/unicodeveloper/laravel-hackathon-starter/pulls)MITPHPPHP &gt;=5.5.9

Since Feb 24Pushed 2y ago72 watchersCompare

[ Source](https://github.com/unicodeveloper/laravel-hackathon-starter)[ Packagist](https://packagist.org/packages/unicodeveloper/laravel-hackathon-starter)[ RSS](/packages/unicodeveloper-laravel-hackathon-starter/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)Dependencies (23)Versions (7)Used By (0)

[![](https://cloud.githubusercontent.com/assets/2946769/13175239/6950a682-d709-11e5-910e-b065a6cf5617.jpg)](https://cloud.githubusercontent.com/assets/2946769/13175239/6950a682-d709-11e5-910e-b065a6cf5617.jpg)

Laravel Hackathon Starter - SUSUMU 進
====================================

[](#laravel-hackathon-starter---susumu-進)

[![](https://camo.githubusercontent.com/984f6792e3d81e34b782c12770dfd5e6153ea75f5e71d8e668933b988ba1a81f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f756e69636f646576656c6f7065722d617070726f7665642d627269676874677265656e2e737667)](https://camo.githubusercontent.com/984f6792e3d81e34b782c12770dfd5e6153ea75f5e71d8e668933b988ba1a81f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f756e69636f646576656c6f7065722d617070726f7665642d627269676874677265656e2e737667) [![Build Status](https://camo.githubusercontent.com/5ae4268e572293ae1e04ed4f7b53154cbea552850525c3fb2c04feee931a4f93/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f756e69636f646576656c6f7065722f6c61726176656c2d6861636b6174686f6e2d737461727465722e737667)](https://travis-ci.org/unicodeveloper/laravel-hackathon-starter) [![Quality Score](https://camo.githubusercontent.com/84b52a52bc2c0a5a166a21e961edf08ff8c79fb3189de4ee271a832f8cdb9ee0/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f756e69636f646576656c6f7065722f6c61726176656c2d6861636b6174686f6e2d737461727465722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/unicodeveloper/laravel-hackathon-starter)

If you have attended any hackathons in the past, then you know how much time it takes to get a project started: decide on what to build, pick a programming language, pick a web framework, pick a CSS framework. A while later, you might have an initial project up on GitHub and only then can other team members start contributing. Or how about doing something as simple as *Sign in with Facebook* authentication? You can spend hours on it if you are not familiar with how OAuth 2.0 works.

Even if you are not using this for a hackathon, Laravel Hackathon Starter is sure to save any developer hours or even days of development time and can serve as a learning guide for web developers.

Laravel is a web application framework with expressive, elegant syntax. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, queueing, and caching.

Laravel Hackathon Starter is a boilerplate application developed with Laravel 5.2 to keep you ahead in hackathons.

#### Modern Theme

[](#modern-theme)

[![](https://cloud.githubusercontent.com/assets/2946769/13172250/83f1ff5c-d6f7-11e5-9fb6-abc44ef0b550.png)](https://cloud.githubusercontent.com/assets/2946769/13172250/83f1ff5c-d6f7-11e5-9fb6-abc44ef0b550.png)

#### API Examples

[](#api-examples)

[![](https://cloud.githubusercontent.com/assets/2946769/13172331/d0a46b8c-d6f7-11e5-9aff-954f75133155.png)](https://cloud.githubusercontent.com/assets/2946769/13172331/d0a46b8c-d6f7-11e5-9aff-954f75133155.png)

Table of Contents
-----------------

[](#table-of-contents)

- [Features](#features)
- [Prerequisites](#prerequisites)
- [Getting Started](#getting-started)
- [Generator](#generator)
- [Obtaining API Keys](#obtaining-api-keys)
- [Project Structure](#project-structure)
- [List of Packages](#list-of-packages)
- [Useful Tools and Resources](#useful-tools-and-resources)
- [Recommended Design Resources](#recommended-design-resources)
- [Recommended Laravel Libraries](#recommended-laravel-libraries)
- [Pro Tips](#pro-tips)
- [FAQ](#faq)
- [How It Works](#how-it-works-mini-guides)
- [Laravel Eloquent Cheatsheet](#laravel-eloquent-cheatsheet)
- [Deployment](#deployment)
- [Changelog](#changelog)
- [Contributing](#contributing)
- [License](#license)

Features
--------

[](#features)

- **Local Authentication** using Email and Password
- **OAuth 1.0a Authentication** via Twitter
- **OAuth 2.0 Authentication** via Facebook, Google, GitHub, LinkedIn, Instagram
- Flash notifications
- MVC Project Structure
- Bootstrap 3
- Contact Form (powered by Mailgun, Sendgrid or Mandrill)
- **Account Management**
- Gravatar
- Profile Details
- Change Password
- Forgot Password
- Reset Password
- Delete Account
- CSRF protection
- **API Examples**: Facebook, Foursquare, Last.fm, Tumblr, Twitter, Stripe, LinkedIn and more.
- **Automatic Documentation**

Prerequisites
-------------

[](#prerequisites)

- [Mysql](https://www.mysql.com/) or [Postgresql](http://www.postgresql.org/)
- [PHP 5.4+](http://php.net/)
- Command Line Tools
- [![](https://camo.githubusercontent.com/e0aff03a3628af4d282443f02d44629225066715a67259a059ab74cb5f24b141/687474703a2f2f64656c7567652d746f7272656e742e6f72672f696d616765732f6170706c652d6c6f676f2e676966)](https://camo.githubusercontent.com/e0aff03a3628af4d282443f02d44629225066715a67259a059ab74cb5f24b141/687474703a2f2f64656c7567652d746f7272656e742e6f72672f696d616765732f6170706c652d6c6f676f2e676966) **Mac OS X:** [Xcode](https://itunes.apple.com/us/app/xcode/id497799835?mt=12) (or **OS X 10.9+**: `xcode-select --install`)
- [![](https://camo.githubusercontent.com/ebcfb42f0a3bc6f8ba155f54ee8affea7ce6da7256f77ce66e8da9ff06407b24/687474703a2f2f64633934326434313938343361663035353233622d66663734616531333533376130316265366366656335393237383337646366652e7231342e6366312e7261636b63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f77696e646f77732d382d35307835302e6a7067)](https://camo.githubusercontent.com/ebcfb42f0a3bc6f8ba155f54ee8affea7ce6da7256f77ce66e8da9ff06407b24/687474703a2f2f64633934326434313938343361663035353233622d66663734616531333533376130316265366366656335393237383337646366652e7231342e6366312e7261636b63646e2e636f6d2f77702d636f6e74656e742f75706c6f6164732f77696e646f77732d382d35307835302e6a7067) **Windows:** [Visual Studio](https://www.visualstudio.com/products/visual-studio-community-vs)
- [![](https://camo.githubusercontent.com/ba026faf582fe9fd15e0311382a831c5dd97b2a1a30345cff617a07fe8f39908/68747470733a2f2f6c68352e676f6f676c6575736572636f6e74656e742e636f6d2f2d32595331636548577979732f41414141414141414141492f41414141414141414141632f304c43625f747354766d552f7334362d632d6b2f70686f746f2e6a7067)](https://camo.githubusercontent.com/ba026faf582fe9fd15e0311382a831c5dd97b2a1a30345cff617a07fe8f39908/68747470733a2f2f6c68352e676f6f676c6575736572636f6e74656e742e636f6d2f2d32595331636548577979732f41414141414141414141492f41414141414141414141632f304c43625f747354766d552f7334362d632d6b2f70686f746f2e6a7067) **Ubuntu** / [![](https://camo.githubusercontent.com/acfb9eb0793f829f1d0330584830fd962deac4d4501b37327aecb5819efa6aee/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f332f33662f4c6f676f5f4c696e75785f4d696e742e706e67)](https://camo.githubusercontent.com/acfb9eb0793f829f1d0330584830fd962deac4d4501b37327aecb5819efa6aee/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f332f33662f4c6f676f5f4c696e75785f4d696e742e706e67) **Linux Mint:** `sudo apt-get install build-essential`
- [![](https://camo.githubusercontent.com/21a2ff049da4ecbc4de118587c718906f38cd9020ea3e130f17a5949149b05bb/687474703a2f2f69312d6e6577732e736f667470656469612d7374617469632e636f6d2f696d616765732f65787472612f4c494e55582f736d616c6c2f736c773231386e657773312e706e67)](https://camo.githubusercontent.com/21a2ff049da4ecbc4de118587c718906f38cd9020ea3e130f17a5949149b05bb/687474703a2f2f69312d6e6577732e736f667470656469612d7374617469632e636f6d2f696d616765732f65787472612f4c494e55582f736d616c6c2f736c773231386e657773312e706e67) **Fedora**: `sudo dnf groupinstall "Development Tools"`
- [![](https://camo.githubusercontent.com/b2cbcacd244a3aacae4d425c5caa2b716aeb891237cd75b572f0371764074bfa/68747470733a2f2f656e2e6f70656e737573652e6f72672f696d616765732f622f62652f4c6f676f2d6765656b6f5f686561642e706e67)](https://camo.githubusercontent.com/b2cbcacd244a3aacae4d425c5caa2b716aeb891237cd75b572f0371764074bfa/68747470733a2f2f656e2e6f70656e737573652e6f72672f696d616765732f622f62652f4c6f676f2d6765656b6f5f686561642e706e67) **OpenSUSE:** `sudo zypper install --type pattern devel_basis`
- [![](https://camo.githubusercontent.com/e96bf3e56ee4f8eb84af7d34521ab0a27fcd0e3d6438e52e7287deabfc449cd5/68747470733a2f2f676c6f62616c2d75706c6f6164732e776562666c6f772e636f6d2f3565613162353939653838646339656463343635653866352f3565613862333064643433613062343462626339316264385f66617669636f6e2d33327833322e706e67)](https://camo.githubusercontent.com/e96bf3e56ee4f8eb84af7d34521ab0a27fcd0e3d6438e52e7287deabfc449cd5/68747470733a2f2f676c6f62616c2d75706c6f6164732e776562666c6f772e636f6d2f3565613162353939653838646339656463343635653866352f3565613862333064643433613062343462626339316264385f66617669636f6e2d33327833322e706e67) **Optic:** `npm install -g @useoptic/cli` (needed for automatic documentation)

**Note:** If you are new to Laravel, I recommend to watch [Laravel From Scratch](https://laracasts.com/series/laravel-5-from-scratch) screencast by Jeffery Way that teaches Laravel 5 from scratch. Alternatively, here is another great tutorial for building a project management app for beginners/intermediate developers - [How to build a project management app in Laravel 5](http://goodheads.io/2015/09/16/how-to-build-a-project-management-app-in-laravel-5-part-1/).

Getting Started
---------------

[](#getting-started)

#### Via Cloning The Repository:

[](#via-cloning-the-repository)

```
# Get the project
git clone https://github.com/unicodeveloper/laravel-hackathon-starter.git hackathon-starter-pack

# Change directory
cd hackathon-starter-pack

# Copy .env.example to .env
cp .env.example .env

# Create a database (with mysql or postgresql)
# And update .env file with database credentials
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_DATABASE=laravelhackathon
# DB_USERNAME=root
# DB_PASSWORD=root

# Install Composer dependencies
composer install

# Generate application secure key (in .env file)
php artisan key:generate

# Generate application secure key (in .env file)
php artisan key:generate

php artisan serve
```

#### Via The Installer:

[](#via-the-installer)

First, download the Laravel Hackathon Starter Pack Installer using Composer:

```
composer global require "unicodeveloper/hackathon-installer"

```

Make sure to place the `~/.composer/vendor/bin` directory (or the equivalent directory for your OS) in your PATH so the `larathon` executable can be located by your system.

Once installed, the `larathon new` command will create a fresh Laravel Hackathon Starter Pack installation in the directory you specify. For instance, `larathon new mvp` will create a directory named `mvp` containing a fresh Laravel Hackathon Starter Pack installation with all of it's dependencies already installed. This method of installation is much faster than installing via Composer:

```
larathon new mvp

```

#### Via Composer Create-Project

[](#via-composer-create-project)

Alternatively, you may also install Laravel Hackathon Starter Pack by issuing the Composer `create-project` command in your terminal:

```
composer create-project --prefer-dist unicodeveloper/laravel-hackathon-starter hotel

```

This starter pack includes the following APIs. You will need to obtain appropriate credentials like Client ID, zClient secret, API key, or Username &amp; Password by going through each provider and generate new credentials.

- Cloudder
- Twitter
- Twillo
- Github
- Slack
- Socialite Providers
- Socialite LinkedIn

Obtaining API Keys
------------------

[](#obtaining-api-keys)

[![](https://camo.githubusercontent.com/af256ffe05606d4e6d3db8dfdbbe6671dc218c75b88fbed52aad92c427a512f6/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f7468756d622f322f32662f476f6f676c655f323031355f6c6f676f2e7376672f3130303070782d476f6f676c655f323031355f6c6f676f2e7376672e706e67)](https://camo.githubusercontent.com/af256ffe05606d4e6d3db8dfdbbe6671dc218c75b88fbed52aad92c427a512f6/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f7468756d622f322f32662f476f6f676c655f323031355f6c6f676f2e7376672f3130303070782d476f6f676c655f323031355f6c6f676f2e7376672e706e67)

- Visit [Google Cloud Console](https://cloud.google.com/console/project)
- Click on the **Create Project** button
- Enter *Project Name*, then click on **Create** button
- Then click on *APIs &amp; auth* in the sidebar and select *API* tab
- Click on **Google+ API** under *Social APIs*, then click **Enable API**
- Next, under *APIs &amp; auth* in the sidebar click on *Credentials* tab
- Click on **Create new Client ID** button
- Select *Web Application* and click on **Configure Consent Screen**
- Fill out the required fields then click on **Save**
- In the *Create Client ID* modal dialog:
- **Application Type**: Web Application
- **Authorized Javascript origins**:
- **Authorized redirect URI**:
- Click on **Create Client ID** button
- Copy and paste *Client ID* and *Client secret* keys into `.env`

**Note:** When you ready to deploy to production don't forget to add your new url to *Authorized Javascript origins* and *Authorized redirect URI*, e.g. `http://my-awesome-app.herokuapp.com` and `http://my-awesome-app.herokuapp.com/auth/google/callback` respectively. The same goes for other providers.

---

[![](https://camo.githubusercontent.com/75bddfc30cc790366ffdf5a922ab6bd223afde816a6668bc03662a1b8d65b9d8/687474703a2f2f7777772e646f69742e62612f696d672f66616365626f6f6b2e6a7067)](https://camo.githubusercontent.com/75bddfc30cc790366ffdf5a922ab6bd223afde816a6668bc03662a1b8d65b9d8/687474703a2f2f7777772e646f69742e62612f696d672f66616365626f6f6b2e6a7067)

- Visit [Facebook Developers](https://developers.facebook.com/)
- Click **My Apps**, then select \**Add a New App* from the dropdown menu
- Select **Website** platform and enter a new name for your app
- Click on the **Create New Facebook App ID** button
- Choose a **Category** that best describes your app
- Click on **Create App ID** button
- In the upper right corner click on **Skip Quick Star**
- Copy and paste *App ID* and *App Secret* keys into `.env`
- **Note:** *App ID* is **clientID**, *App Secret* is **clientSecret**
- Click on the *Settings* tab in the left nav, then click on **+ Add Platform**
- Select **Website**
- Enter `http://localhost:3000` under *Site URL*

**Note:** After a successful sign in with Facebook, a user will be redirected back to home page with appended hash `#_=_` in the URL. It is *not* a bug. See this [Stack Overflow](https://stackoverflow.com/questions/7131909/facebook-callback-appends-to-return-url) discussion for ways to handle it.

---

[![](https://camo.githubusercontent.com/2401448b76ca4e8efe1965ddf8516c16b9b47bb1cee9a708c248f189bce7b8e9/68747470733a2f2f6769746875622e676c6f62616c2e73736c2e666173746c792e6e65742f696d616765732f6d6f64756c65732f6c6f676f735f706167652f4769744875622d4c6f676f2e706e67)](https://camo.githubusercontent.com/2401448b76ca4e8efe1965ddf8516c16b9b47bb1cee9a708c248f189bce7b8e9/68747470733a2f2f6769746875622e676c6f62616c2e73736c2e666173746c792e6e65742f696d616765732f6d6f64756c65732f6c6f676f735f706167652f4769744875622d4c6f676f2e706e67)

- Go to [Account Settings](https://github.com/settings/profile)
- Select **Applications** from the sidebar
- Then inside **Developer applications** click on **Register new application**
- Enter *Application Name* and *Homepage URL*
- For *Authorization Callback URL*:
- Click **Register application**
- Now copy and paste *Client ID* and *Client Secret* keys into `.env` file

---

[![](https://camo.githubusercontent.com/ae436b7f830e6b3988ed246fac6c648bd15d4311e76f1385c2d4449e73d54829/68747470733a2f2f672e7477696d672e636f6d2f696f735f686f6d6573637265656e5f69636f6e2e706e67)](https://camo.githubusercontent.com/ae436b7f830e6b3988ed246fac6c648bd15d4311e76f1385c2d4449e73d54829/68747470733a2f2f672e7477696d672e636f6d2f696f735f686f6d6573637265656e5f69636f6e2e706e67)

- Sign in at
- Click **Create a new application**
- Enter your application name, website and description
- For **Callback URL**:
- Go to **Settings** tab
- Under *Application Type* select **Read and Write** access
- Check the box **Allow this application to be used to Sign in with Twitter**
- Click **Update this Twitter's applications settings**
- Copy and paste *Consumer Key* and *Consumer Secret* keys into `.env` file

---

[![](https://camo.githubusercontent.com/95ec9c828ee3f944a8457270a731ee8660c7b417ab1e74b580018a98def66512/687474703a2f2f7777772e64616e706f6e746566726163742e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30322f6c6f676f2d6c696e6b6564696e2e706e67)](https://camo.githubusercontent.com/95ec9c828ee3f944a8457270a731ee8660c7b417ab1e74b580018a98def66512/687474703a2f2f7777772e64616e706f6e746566726163742e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031342f30322f6c6f676f2d6c696e6b6564696e2e706e67)

- Sign in at [LinkedIn Developer Network](https://developer.linkedin.com/)
- From the account name dropdown menu select **API Keys**
- *It may ask you to sign in once again*
- Click **+ Add New Application** button
- Fill out all the *required* fields
- **OAuth 2.0 Redirect URLs**:
- **JavaScript API Domains**:
- For **Default Application Permissions** make sure at least the following is checked:
- `r_basicprofile`
- Finish by clicking **Add Application** button
- Copy and paste *API Key* and *Secret Key* keys into `.env` file
- *API Key* is your **clientID**
- *Secret Key* is your **clientSecret**

---

[![](https://camo.githubusercontent.com/2ba756ff91e60727e64298120301032a3a35dc1e5107b5898998b6df1d23bd68/68747470733a2f2f7374726970652e636f6d2f696d672f61626f75742f6c6f676f732f6c6f676f732f626c61636b4032782e706e67)](https://camo.githubusercontent.com/2ba756ff91e60727e64298120301032a3a35dc1e5107b5898998b6df1d23bd68/68747470733a2f2f7374726970652e636f6d2f696d672f61626f75742f6c6f676f732f6c6f676f732f626c61636b4032782e706e67)

- [Sign up](https://stripe.com/) or log into your [dashboard](https://manage.stripe.com)
- Click on your profile and click on Account Settings
- Then click on [API Keys](https://manage.stripe.com/account/apikeys)
- Copy the **Secret Key**. and add this into `.env` file

---

[![](https://camo.githubusercontent.com/3ef15ed3ec4baba4b54c6f8a6f9289b3ede049eaea51cdc2ced4ece0c29ec7b2/68747470733a2f2f63646e2e706978616261792e636f6d2f70686f746f2f323031352f30352f32362f30392f33372f70617970616c2d3738343430345f3936305f3732302e706e67)](https://camo.githubusercontent.com/3ef15ed3ec4baba4b54c6f8a6f9289b3ede049eaea51cdc2ced4ece0c29ec7b2/68747470733a2f2f63646e2e706978616261792e636f6d2f70686f746f2f323031352f30352f32362f30392f33372f70617970616c2d3738343430345f3936305f3732302e706e67)

- Visit [PayPal Developer](https://developer.paypal.com/)
- Log in to your PayPal account
- Click **Applications &gt; Create App** in the navigation bar
- Enter *Application Name*, then click **Create app**
- Copy and paste *Client ID* and *Secret* keys into `.env` file
- *App ID* is **client\_id**, *App Secret* is **client\_secret**
- Change **host** to api.paypal.com if you want to test against production and use the live credentials

---

[![](https://camo.githubusercontent.com/7d5666d7ff299d29c6fac0d146b794c2435f2fa58023f1376f5398f3c4e52ec3/687474703a2f2f33332e6d656469612e74756d626c722e636f6d2f66666166303037356265383739623361623062383766306238626363363831342f74756d626c725f696e6c696e655f6e393635626b4f796d7231717a786867612e706e67)](https://camo.githubusercontent.com/7d5666d7ff299d29c6fac0d146b794c2435f2fa58023f1376f5398f3c4e52ec3/687474703a2f2f33332e6d656469612e74756d626c722e636f6d2f66666166303037356265383739623361623062383766306238626363363831342f74756d626c725f696e6c696e655f6e393635626b4f796d7231717a786867612e706e67)

- Go to [foursquare for Developers](https://developer.foursquare.com/)
- Click on **My Apps** in the top menu
- Click the **Create A New App** button
- Enter *App Name*, *Welcome page url*,
- For **Redirect URI**:
- Click **Save Changes**
- Copy and paste *Client ID* and *Client Secret* keys into `.env` file

---

[![](https://camo.githubusercontent.com/846a56e8da9819fd9ca53cd983d93e4fb2e5eb13a3100db23959c237da4e5ebb/687474703a2f2f696d67342e77696b69612e6e6f636f6f6b69652e6e65742f5f5f636232303133303532303136333334362f6c6f676f70656469612f696d616765732f382f38642f54756d626c725f6c6f676f5f62795f785f313333375f782d6435696b7770702e706e67)](https://camo.githubusercontent.com/846a56e8da9819fd9ca53cd983d93e4fb2e5eb13a3100db23959c237da4e5ebb/687474703a2f2f696d67342e77696b69612e6e6f636f6f6b69652e6e65742f5f5f636232303133303532303136333334362f6c6f676f70656469612f696d616765732f382f38642f54756d626c725f6c6f676f5f62795f785f313333375f782d6435696b7770702e706e67)

- Go to
- Once signed in, click **+Register application**
- Fill in all the details
- For **Default Callback URL**:
- Click **✔Register**
- Copy and paste *OAuth consumer key* and *OAuth consumer secret* keys into `.env` file

---

[![](https://camo.githubusercontent.com/e55b53ca2efca3c56582eb36d5dcbcca9fde9309eb1d770f09199a95a6b9403f/687474703a2f2f7777772e746563686e6f6c6f677974656c6c2e636f6d2f67616d696e672f66696c65732f323031322f30312f737465616d5f6c6f676f2e6a7067)](https://camo.githubusercontent.com/e55b53ca2efca3c56582eb36d5dcbcca9fde9309eb1d770f09199a95a6b9403f/687474703a2f2f7777772e746563686e6f6c6f677974656c6c2e636f6d2f67616d696e672f66696c65732f323031322f30312f737465616d5f6c6f676f2e6a7067)

- Go to
- Sign in with your existing Steam account
- Enter your *Domain Name*, then and click **Register**
- Copy and paste *Key* into `.env` file

---

[![](https://camo.githubusercontent.com/2629a3ed08db5d458fdcd2954602473820c589a596de3f7a04f9843504288b04/687474703a2f2f69616e646f75676c61732e636f6d2f70726573656e746174696f6e732f7079636f6e6361323031322f6c6f676f732f73656e64677269645f6c6f676f2e706e67)](https://camo.githubusercontent.com/2629a3ed08db5d458fdcd2954602473820c589a596de3f7a04f9843504288b04/687474703a2f2f69616e646f75676c61732e636f6d2f70726573656e746174696f6e732f7079636f6e6361323031322f6c6f676f732f73656e64677269645f6c6f676f2e706e67)

- Go to
- Sign up and **confirm** your account via the *activation email*
- Then enter your SendGrid *Username* and *Password* into `.env` file

---

[![](https://camo.githubusercontent.com/eb6c9c65f9878148680675dee71a3a0b3d4f4cb8f15291a430f3ccececbf1ab9/68747470733a2f2f7261772e6769746875622e636f6d2f6d61696c67756e2f6d656469612f6d61737465722f4d61696c67756e5f5072696d6172792e706e67)](https://camo.githubusercontent.com/eb6c9c65f9878148680675dee71a3a0b3d4f4cb8f15291a430f3ccececbf1ab9/68747470733a2f2f7261772e6769746875622e636f6d2f6d61696c67756e2f6d656469612f6d61737465722f4d61696c67756e5f5072696d6172792e706e67)

- Go to
- Sign up and add your *Domain Name*
- From the domain overview, copy and paste the default SMTP *Login* and *Password* into `.env` file

---

[![](https://camo.githubusercontent.com/e7a6b4caa8754bf1e69a2ce8a24604021ea0b3b205f1ddfe5a18c58035d0ce11/687474703a2f2f63646e2e61707073746f726d2e6e65742f7765622e61707073746f726d2e6e65742f7765622f66696c65732f323031332f31322f6d616e6472696c6c2d6c6f676f2e706e67)](https://camo.githubusercontent.com/e7a6b4caa8754bf1e69a2ce8a24604021ea0b3b205f1ddfe5a18c58035d0ce11/687474703a2f2f63646e2e61707073746f726d2e6e65742f7765622e61707073746f726d2e6e65742f7765622f66696c65732f323031332f31322f6d616e6472696c6c2d6c6f676f2e706e67)

- Go to
- Sign up and add your *Domain Name*
- From the dashboard, click on *Get SMTP credentials*
- Copy and paste the default SMTP *Login* and *Password* into `.env` file

---

[![](https://camo.githubusercontent.com/82cbdf5a1ec309bf8bbd36fd27afcbf0978bb8a62e8e1275aa7d3bd6a5b034a6/68747470733a2f2f7777772e626974676f2e636f6d2f696d672f6e65775f626974676f2f6c6f676f5f666f6f7465722e706e67)](https://camo.githubusercontent.com/82cbdf5a1ec309bf8bbd36fd27afcbf0978bb8a62e8e1275aa7d3bd6a5b034a6/68747470733a2f2f7777772e626974676f2e636f6d2f696d672f6e65775f626974676f2f6c6f676f5f666f6f7465722e706e67)

- Go to
- Sign up for an account.
- Once logged into the dashboard, go to the top right selector and click 'account settings'
- Under the developers tab, create your access token and copy and paste it into `.env` file

---

[![](https://camo.githubusercontent.com/ff4f94407cce15f36020b4b145ba331a8ff5ffe925c1554fd8039c2590daad13/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f61686f792d6173736574732e7477696c696f2e636f6d2f676c6f62616c2f696d616765732f776f72646d61726b2e737667)](https://camo.githubusercontent.com/ff4f94407cce15f36020b4b145ba331a8ff5ffe925c1554fd8039c2590daad13/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f61686f792d6173736574732e7477696c696f2e636f6d2f676c6f62616c2f696d616765732f776f72646d61726b2e737667)

- Go to
- Sign up for an account.
- Once logged into the dashboard, expand the link 'show api credentials'
- Copy your Account Sid and Auth Token

run `php artisan vendor:publish`

Project Structure
-----------------

[](#project-structure)

NameDescription**config**/app.phpConfiguration for service providers and facades**config**/auth.phpConfiguration for password resets**config**/broadcasting.phpConfiguration for broadcasting**config**/cache.phpConfiguration for cache generation and storage**config**/cloudder.phpConfiguration for cloudinary**config**/compile.phpConfiguration for compilation**config**/database.phpConfiguration for database drivers**config**/filesystems.phpConfiguration for different file systems**config**/github.phpConfiguration for github API**config**/mail.phpConfiguration for mails**config**/queue.phpConfiguration for queue**config**/services.phpConfiguration for several services like mailgun etc.**config**/session.phpConfiguration for sessions**config**/ttwitter.phpTwitter API config file**config**/twilio.phpTwilio API config file**config**/view.phpConfiguration for location of views and view cache**controllers**/AccountController.phpController for Account management**controllers**/AviaryController.phpController for Aviary API functionality**controllers**/ClockworkController.phpController for Clockwork API functionality**controllers**/ContactController.phpController for Contact page**controllers**/Controller.phpBaseController**controllers**/GithubController.phpController for Github API functionality**controllers**/LastFmController.phpController for LastFM API functionality**controllers**/LobController.phpController for Lob API functionality.**controllers**/NytController.phpController for New York Times API functionality**controllers**/OauthController.phpController for Oauthentication**controllers**/PaypalController.phpController for Paypal API functionality**controllers**/SteamController.phpController for Stream API functionality**controllers**/StripeController.phpController for Stripe API functionality**controllers**/TwilioController.phpController for Twilio API functionality**controllers**/TwitterController.phpController for Twitter API functionality**controllers**/WebScrapingController.phpController for Web Scraping.**controllers**/YahooController.phpController for Yahoo API functionality**controllers**/user.jsController for user account management.**models**/User.phpModel for User.**public**/Static assets (fonts, css, js, img).**public**/**css**/main.cssMain stylesheet for your app.**resources/views/account**/Templates for *login, password reset, signup, profile*.**views/api**/Templates for API Examples.**views/partials**/alerts.blade.phpError, info and success flash notifications.**views/partials**/navbar.blade.phpNavbar partial template.**views**/layouts\*\*/master.blade.phpBase template.**views**/apidashboard.blade.phpAPI dashboard template.**views**/contact.blade.phpContact page template.**views**/welcome.blade.phpHome page template..travis.yml[Travis CI](https://travis-ci.org/) integration..env.exampleYour API keys, tokens, passwords and database URI.composer.jsonFile for loading all php packages.package.jsonFile for loading all necessary node modules.artisanFile for enabling commands to runList of Packages
----------------

[](#list-of-packages)

PackageDescriptionsocialiteSign-in with Facebook, Twitter and Githubsocialite providersSign-in with LinkedIn, InstagramcloudderUpload images to Cloudinarylaravel githubGithub API libraryclockworkClockwork SMS API library.goutteScrape web pages using jQuery-style syntax.laravel frameworkPHP web frameworktwitterTwitter API librarytwilioTwilio API librarylob-phpLob API librarylastfm-api-wrapperLastfm API libraryphpunitPHP testing libraryguzzlehttpSimplified HTTP Request libraryUseful Tools and Resources
--------------------------

[](#useful-tools-and-resources)

- [Laravel Daily](http://laraveldaily.com/) - Awesome laravel tips daily
- [Laravel News](https://laravel-news.com/) - Laravel and PHP tutorials.
- [Goodheads](http://goodheads.io) - Laravel, PHP and JS tutorials
- [Favicon Generator](http://realfavicongenerator.net/) - Generate favicons for PC, Android, iOS, Windows 8.

Recommended Design Resources
----------------------------

[](#recommended-design-resources)

- [Code Guide](http://codeguide.co/) - Standards for developing flexible, durable, and sustainable HTML and CSS.
- [Bootsnipp](http://bootsnipp.com/) - Code snippets for Bootstrap.
- [UIBox](http://www.uibox.in) - Curated HTML, CSS, JS, UI components.
- [Bootstrap Zero](https://www.bootstrapzero.com) - Free Bootstrap templates themes.
- [Google Bootstrap](http://todc.github.io/todc-bootstrap/) - Google-styled theme for Bootstrap.
- [Font Awesome Icons](http://fortawesome.github.io/Font-Awesome/icons/) - It's already part of the Hackathon Starter, so use this page as a reference.
- [Colors](http://clrs.cc) - A nicer color palette for the web.
- [Creative Button Styles](http://tympanus.net/Development/CreativeButtons/) - awesome button styles.
- [Creative Link Effects](http://tympanus.net/Development/CreativeLinkEffects/) - Beautiful link effects in CSS.
- [Medium Scroll Effect](http://codepen.io/andreasstorm/pen/pyjEh) - Fade in/out header background image as you scroll.
- [GeoPattern](https://github.com/btmills/geopattern) - SVG background pattern generator.
- [Trianglify](https://github.com/qrohlf/trianglify) - SVG low-poly background pattern generator.

Recommended Laravel Libraries
-----------------------------

[](#recommended-laravel-libraries)

- [laravel-medialibrary](https://github.com/spatie/laravel-medialibrary) - Associated media files with your Eloquent models easily.
- [laravel-emoji](https://github.com/unicodeveloper/laravel-emoji) - For using emojis in your app
- [laravel-quotes](https://github.com/unicodeveloper/laravel-quotes) - For using all sorts of quotes especially DJKHALED in your app

Enabling Automatic Documentation
--------------------------------

[](#enabling-automatic-documentation)

Using [Optic](https://github.com/opticdev/optic), you can use your API like normal, automatically documenting changes in behavior. To enable this, you'll first need to download Optic.

```
    npm install -g @useoptic/cli
```

Once you've installed Optic, you can start documenting your requests by running `api start`. Running this command will create a proxied version of your api, available at [localhost:4000](http://localhost:4000) - now, you can use the API like normal here, and Optic will automatically notice differences in the documented behavior, allowing you to automatically create documentation as your API changes.

To view the current documentation of the api, run `api spec` at the root directory.

#### Useful Commands

[](#useful-commands)

```
    api start # use this to start monitoring your API
    api spec # use this to inspect the current documentation of your API
    api generate:oas # generates an OpenAPI specification for your currently documented API
```

For more information about Optic, [check out the docs](https://docs.useoptic.com).

FAQ
---

[](#faq)

### Why do I get `Token Mismatch Exception` when submitting a form?

[](#why-do-i-get-token-mismatch-exception-when-submitting-a-form)

You need to add the following hidden input element to your form. This has been added in the existing codebase as part of the CSRF protection.

```
{!! csrf_field() !!}

```

### I get a whoops error when I deploy my app, why?

[](#i-get-a-whoops-error-when-i-deploy-my-app-why)

Chances are you haven't generated the app key, so run `php artisan key:generate`. Chances are you haven't put your credentials in your .env file.

How It Works (mini guides)
--------------------------

[](#how-it-works-mini-guides)

This section is intended for giving you a detailed explanation about how a particular functionality works. Maybe you are just curious about how it works, or maybe you are lost and confused while reading the code, I hope it provides some guidance to you.

---

### How do flash messages work in this project?

[](#how-do-flash-messages-work-in-this-project)

Flash messages allow you to display a message at the end of the request and access it on next request and only next request. For instance, on a failed login attempt, you would display an alert with some error message, but as soon as you refresh that page or visit a different page and come back to the login page, that error message will be gone. It is only displayed once. All flash messages are available in your views via laravel sessions.

---

### How do I create a new page?

[](#how-do-i-create-a-new-page)

A more correct way to be to say "How do I create a new route". The main file `routes.php` contains all the routes. Each route has a callback function associated with it. Sometimes you will see 3 or more arguments to routes. In cases like that, the first argument is still a URL string, while middle arguments are what's called middleware. Think of middleware as a door. If this door prevents you from continuing forward, you won't get to your callback function. One such example is a route that requires authentication.

```
Route::get('/account', 'UserController@getAccount');
```

It always goes from left to right. A user visits `/account` page. Then `auth` middleware checks if you are authenticated:

```
 Route::get('/account', [
        'uses' => 'AccountController@getAccountPage',
        'as'   => 'account.dashboard',
        'middleware' => ['auth']
]);
```

If you are authenticated, you let this visitor pass through your "door" by calling `return $next($request);` in the auth middleware and if you are authenticated, you will be redirected to *Account Management* page, otherwise you will be redirected to *Login* page.

Here is a typical workflow for adding new routes to your application. Let's say we are building a page that lists all books from database.

**Step 1.** Start by defining a route.

```
Route::get('/books', 'BookController@getBooks');
```

---

**Step 2.** Create a new model `Book.php` inside the *app* directory. You can simply run `php artisan make:model Book`

```
namespace App;

class Book
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'isbn',
    ];
}
```

**Step 3.** Create a migration file like so: `php artisan make:migration create_books_table`

```
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateBooksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('books', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('isbn');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('books');
    }
}
```

**Step 4.** Create a new controller file called `BookController` inside the *app/Http/Controllers* directory. You can simply run `php artisan make:controller BookController`

```
namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Book;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class BookController extends Controller
{
    /**
     * Return all books
     * @return mixed
     */
    public function getBooks()
    {
        $books = Book::all();

        return view('books')->withBooks($books);
    }
}
```

**Step 5.** Create `books.blade.php` template.

```
@extends('layouts.master')

@section('content')

        @include('layouts.partials.alerts')

            All Books

        @foreach ($books as $book)
             {{ $book->name }}
        @endforeach

@stop
```

That's it!

---

Laravel Eloquent Cheatsheet
---------------------------

[](#laravel-eloquent-cheatsheet)

- [Eloquent Cheatsheet](http://cheats.jesse-obrien.ca/)

Deployment
----------

[](#deployment)

Once you are ready to deploy your app, you will need to create an account with a cloud platform to host it. These are not the only choices, but they are my top picks. From my experience, **Heroku** is the easiest to get started with, deployments and custom domain support on free accounts.

### 1-Step Deployment with Heroku

[](#1-step-deployment-with-heroku)

[![](https://camo.githubusercontent.com/13c5be0569234c95177a0ff54fbc1f1361c111eac6177309acfafe7aa91c4f7d/687474703a2f2f626c6f672e65786164656c2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031332f31302f6865726f6b752d4c6f676f2d312e6a7067)](https://camo.githubusercontent.com/13c5be0569234c95177a0ff54fbc1f1361c111eac6177309acfafe7aa91c4f7d/687474703a2f2f626c6f672e65786164656c2e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031332f31302f6865726f6b752d4c6f676f2d312e6a7067)

- Download and install [Heroku Toolbelt](https://toolbelt.heroku.com/)
- In terminal, run `heroku login` and enter your Heroku credentials
- From *your app* directory run `heroku create`
- Create a Procfile in your app root. All this file needs to contain is `web: vendor/bin/heroku-php-nginx public` or `web: vendor/bin/heroku-php-apache2 public` if you prefer to use nginx.
- Run `heroku addons:add heroku-postgresql:dev  ` to add a Postgres database to your heroku app from your terminal
- Lastly, do `git push heroku master`. Done!
- Run artisan commands on heroku like so `heroku run php artisan migrate`

**Note:** To install Heroku add-ons your account must be verified.

---

- Finally, you can now push your code to OpenShift by running `git push -f openshift master`
- **Note:** The first time you run this command, you have to pass `-f` (force) flag because OpenShift creates a dummy server with the welcome page when you create a new Node.js app. Passing `-f` flag will override everything with your *Hackathon Starter* project repository. **Do not** run `git pull` as it will create unnecessary merge conflicts.
- And you are done!

[![](https://camo.githubusercontent.com/4d143082fbee4f281e13fbac4e258eb6aadda5116f9af0f5afaee6e0c83de16e/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f662f66662f57696e646f77735f417a7572655f6c6f676f2e706e67)](https://camo.githubusercontent.com/4d143082fbee4f281e13fbac4e258eb6aadda5116f9af0f5afaee6e0c83de16e/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f662f66662f57696e646f77735f417a7572655f6c6f676f2e706e67)

- Login to [Windows Azure Management Portal](https://manage.windowsazure.com/)
- Click the **+ NEW** button on the bottom left of the portal
- Click **COMPUTE**, then **WEB APP**, then **QUICK CREATE**
- Enter a name for **URL** and select the datacenter **REGION** for your web site
- Click on **CREATE WEB APP** button
- Once the web site status changes to *Running*, click on the name of the web site to access the Dashboard
- At the bottom right of the Quickstart page, select **Set up a deployment from source control**
- Select **Local Git repository** from the list, and then click the arrow
- To enable Git publishing, Azure will ask you to create a user name and password
- Once the Git repository is ready, you will be presented with a **GIT URL**
- Inside your *Hackathon Starter* directory, run `git remote add azure [Azure Git URL]`
- To push your changes simply run `git push azure master`
- **Note:** *You will be prompted for the password you created earlier*
- On **Deployments** tab of your Windows Azure Web App, you will see the deployment history

**Note:** Alternative directions, including how to setup the project with a DevOps pipeline are available at . A longer version of these instructions with screenshots is available at . Also, be sure to check out the [Jump-start your hackathon efforts with DevOps Services and Bluemix](https://www.youtube.com/watch?v=twvyqRnutss) video.

Contributing
------------

[](#contributing)

Thank you for considering contributing to Laravel Hackathon Starter. The contribution guide can be found in the [Contribution File](CONTRIBUTING.md)

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

If you discover a security vulnerability within Laravel Hackathon Starter, please send an e-mail to Prosper Otemuyiwa at . All security vulnerabilities will be promptly addressed.

Credits
-------

[](#credits)

- [Sahat Yalkabov](https://github.com/sahat/hackathon-starter) - Awesome

How can I thank you?
--------------------

[](#how-can-i-thank-you)

Why not star the github repo? I'd love the attention! Why not share the link for this repository on Twitter or HackerNews? Spread the word!

Don't forget to [follow me on twitter](https://twitter.com/unicodeveloper)!

Thanks! Prosper Otemuyiwa.

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity40

Moderate usage in the ecosystem

Community33

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 79.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3727d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ae318eb1f5f21579ddee07834130c1169ae6a0771044c3de671dfb02cd79c59f?d=identicon)[unicodeveloper](/maintainers/unicodeveloper)

---

Top Contributors

[![unicodeveloper](https://avatars.githubusercontent.com/u/2946769?v=4)](https://github.com/unicodeveloper "unicodeveloper (106 commits)")[![Cyrille37](https://avatars.githubusercontent.com/u/368965?v=4)](https://github.com/Cyrille37 "Cyrille37 (5 commits)")[![acekyd](https://avatars.githubusercontent.com/u/4003538?v=4)](https://github.com/acekyd "acekyd (4 commits)")[![tirjok](https://avatars.githubusercontent.com/u/3961179?v=4)](https://github.com/tirjok "tirjok (4 commits)")[![profnandaa](https://avatars.githubusercontent.com/u/261265?v=4)](https://github.com/profnandaa "profnandaa (2 commits)")[![trulyronak](https://avatars.githubusercontent.com/u/9388431?v=4)](https://github.com/trulyronak "trulyronak (2 commits)")[![connor11528](https://avatars.githubusercontent.com/u/3578908?v=4)](https://github.com/connor11528 "connor11528 (2 commits)")[![githumps](https://avatars.githubusercontent.com/u/59060157?v=4)](https://github.com/githumps "githumps (1 commits)")[![hudsonpereira](https://avatars.githubusercontent.com/u/911094?v=4)](https://github.com/hudsonpereira "hudsonpereira (1 commits)")[![kamikazechaser](https://avatars.githubusercontent.com/u/18488025?v=4)](https://github.com/kamikazechaser "kamikazechaser (1 commits)")[![drbyte](https://avatars.githubusercontent.com/u/404472?v=4)](https://github.com/drbyte "drbyte (1 commits)")[![rap2hpoutre](https://avatars.githubusercontent.com/u/1575946?v=4)](https://github.com/rap2hpoutre "rap2hpoutre (1 commits)")[![budda](https://avatars.githubusercontent.com/u/104929?v=4)](https://github.com/budda "budda (1 commits)")[![michaeljberry](https://avatars.githubusercontent.com/u/4276672?v=4)](https://github.com/michaeljberry "michaeljberry (1 commits)")[![engelju](https://avatars.githubusercontent.com/u/2188152?v=4)](https://github.com/engelju "engelju (1 commits)")[![fokosun](https://avatars.githubusercontent.com/u/7254731?v=4)](https://github.com/fokosun "fokosun (1 commits)")

---

Tags

apiboilerplatedemohackathonlaravelmvpphpsocial-loginstarterweb-applicationframeworklaravel

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/unicodeveloper-laravel-hackathon-starter/health.svg)

```
[![Health](https://phpackages.com/badges/unicodeveloper-laravel-hackathon-starter/health.svg)](https://phpackages.com/packages/unicodeveloper-laravel-hackathon-starter)
```

###  Alternatives

[bagisto/bagisto

Bagisto Laravel E-Commerce

26.2k161.6k7](/packages/bagisto-bagisto)[unopim/unopim

UnoPim Laravel PIM

9.4k1.8k](/packages/unopim-unopim)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[codewithdennis/larament

Larament is a time-saving starter kit to quickly launch Laravel 13.x projects. It includes FilamentPHP 5.x pre-installed and configured, along with additional tools and features to streamline your development workflow.

3691.5k](/packages/codewithdennis-larament)[kompo/kompo

Laravel &amp; Vue.js FullStack Components for Rapid Application Development

11812.4k21](/packages/kompo-kompo)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
