{"id":16085733,"url":"https://github.com/iamraphson/hackathon-starter","last_synced_at":"2025-11-08T02:03:34.285Z","repository":{"id":42581683,"uuid":"55125665","full_name":"iamraphson/hackathon-starter","owner":"iamraphson","description":"Hackathon Starter Written With Laravel(Extended Version)","archived":false,"fork":false,"pushed_at":"2017-08-25T10:04:20.000Z","size":230,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-26T02:46:57.784Z","etag":null,"topics":["facebook","laravel"],"latest_commit_sha":null,"homepage":"http://hackathon-starter-extended.herokuapp.com/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamraphson.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-31T06:22:53.000Z","updated_at":"2019-03-13T20:41:33.000Z","dependencies_parsed_at":"2022-09-07T15:50:25.761Z","dependency_job_id":null,"html_url":"https://github.com/iamraphson/hackathon-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iamraphson/hackathon-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamraphson%2Fhackathon-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamraphson%2Fhackathon-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamraphson%2Fhackathon-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamraphson%2Fhackathon-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamraphson","download_url":"https://codeload.github.com/iamraphson/hackathon-starter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamraphson%2Fhackathon-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":283287616,"owners_count":26811170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-08T02:00:06.281Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["facebook","laravel"],"created_at":"2024-10-09T13:09:11.569Z","updated_at":"2025-11-08T02:03:34.260Z","avatar_url":"https://github.com/iamraphson.png","language":"PHP","funding_links":["https://developer.paypal.com/"],"categories":[],"sub_categories":[],"readme":"![](https://cloud.githubusercontent.com/assets/3502724/14492020/53c78f2a-0174-11e6-919f-bbfa2d5943dc.jpg)\n**Live Demo**: http://hackathon-starter-extended.herokuapp.com\n\nA boilerplate for **Laravel** web applications.\n\nIf you have attended any hackathons in the past, then you know how much time it takes to\nget a project started: decide on what to build, pick a programming language, pick a web framework,\npick a CSS framework. A while later, you might have an initial project up on GitHub and only then\ncan other team members start contributing. Or how about doing something as simple as *Sign in with Facebook*\nauthentication? You can spend hours on it if you are not familiar with how OAuth 2.0 works.\n\nWhen I started this project, my primary focus was on **simplicity** and **ease of use** and also integrate as many API as Possible.\nI also tried to make it as **generic** and **reusable** as possible to cover most use cases of hackathon web apps,\nwithout being too specific. In the worst case you can use this as a learning guide for your projects,\nif for example you are only interested in **Sign in with Google** authentication and nothing else.\n\nLaravel Hackathon Starter is a boilerplate application developed with Laravel 5.2 to keep you ahead in hackathons.\n\n**[Laravel](https://github.com/laravel/laravel)** is a free, open-source PHP web framework, created by [Taylor Otwell](https://github.com/taylorotwell) and intended for the development of web applications following the model–view–controller (MVC) architectural pattern\n\nSome of the features of Laravel are a modular packaging system with a dedicated dependency manager, different ways for accessing relational databases, utilities that aid in application deployment and maintenance, and its orientation toward syntactic sugar\n\n\n\u003ch4 align=\"center\"\u003eTheme\u003c/h4\u003e\n\n![](https://cloud.githubusercontent.com/assets/3502724/14440600/9189df4a-0028-11e6-9fe7-a70eb1175da4.png)\n\n\u003ch4 align=\"center\"\u003eLogin Example\u003c/h4\u003e\n\n\n![](https://cloud.githubusercontent.com/assets/3502724/14440603/919059ec-0028-11e6-9f30-8f939a1b9c1d.png)\n\n\u003ch4 align=\"center\"\u003eAPI Examples\u003c/h4\u003e\n\n![](https://cloud.githubusercontent.com/assets/3502724/14440602/918dabc0-0028-11e6-9095-f82e82a085bc.png)\n\nTable of Contents\n-----------------\n\n- [Features](#features)\n- [Prerequisites](#prerequisites)\n- [Getting Started](#getting-started)\n- [Obtaining API Keys](#obtaining-api-keys)\n- [Project Structure](#project-structure)\n- [List of Packages](#list-of-packages)\n- [Useful Tools and Resources](#useful-tools-and-resources)\n- [Recommended Design Resources](#recommended-design-resources)\n- [Recommended Laravel Libraries](#recommended-laravel-libraries)\n- [Pro Tips](#pro-tips)\n- [FAQ](#faq)\n- [How It Works](#how-it-works-mini-guides)\n- [Laravel Eloquent Cheatsheet](#laravel-eloquent-cheatsheet)\n- [Deployment](#deployment)\n- [Changelog](#changelog)\n- [Contributing](#contributing)\n- [License](#license)\n\nFeatures\n--------\n\n- **Local Authentication** using Email and Password\n- **OAuth 1.0a Authentication** via Twitter\n- **OAuth 2.0 Authentication** via Facebook, Google, GitHub, LinkedIn, Instagram, Foursquare, Bitbucket\n- Flash notifications\n- MVC Project Structure\n- Bootstrap 3\n- Contact Form (powered by Mailgun or Mandrill)\n- **Account Management**\n\t- Gravatar\n \t- Profile Details\n \t- Change Password\n \t- Forgot Password\n \t- Reset Password\n \t- Delete Account\n \t- CSRF protection\n \t- **API Examples**: Facebook, Foursquare, Last.fm, Tumblr, Twitter, Stripe, LinkedIn e.t.c.\n\nPrerequisites\n-------------\n- [Mysql](http://www.mysql.com) or [Postgresql](http://www.postgresql.org/)\n- [PHP 5.4+](http://php.net/)\n- [Laravel 5+](https://laravel.com/)\n- Command Line Tools\n    - \u003cimg src=\"http://deluge-torrent.org/images/apple-logo.gif\" height=\"17\"\u003e\u0026nbsp;**Mac OS X:** [Xcode](https://itunes.apple.com/us/app/xcode/id497799835?mt=12) (or **OS X 10.9+**: `xcode-select --install`)\n    - \u003cimg src=\"http://dc942d419843af05523b-ff74ae13537a01be6cfec5927837dcfe.r14.cf1.rackcdn.com/wp-content/uploads/windows-8-50x50.jpg\" height=\"17\"\u003e\u0026nbsp;**Windows:** [Visual Studio](https://www.visualstudio.com/products/visual-studio-community-vs)\n    - \u003cimg src=\"https://lh5.googleusercontent.com/-2YS1ceHWyys/AAAAAAAAAAI/AAAAAAAAAAc/0LCb_tsTvmU/s46-c-k/photo.jpg\" height=\"17\"\u003e\u0026nbsp;**Ubuntu** / \u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/3/3f/Logo_Linux_Mint.png\" height=\"17\"\u003e\u0026nbsp;**Linux Mint:** `sudo apt-get install build-essential`\n    - \u003cimg src=\"http://i1-news.softpedia-static.com/images/extra/LINUX/small/slw218news1.png\" height=\"17\"\u003e\u0026nbsp;**Fedora**: `sudo dnf groupinstall \"Development Tools\"`\n    - \u003cimg src=\"https://en.opensuse.org/images/b/be/Logo-geeko_head.png\" height=\"17\"\u003e\u0026nbsp;**OpenSUSE:** `sudo zypper install --type pattern devel_basis`\n    \n**Note:** If you are new to Laravel, I recommend to watch\n[Laravel From Scratch](https://laracasts.com/series/laravel-5-from-scratch) screencast by Jeffery Way that teaches Laravel 5 from scratch. Alternatively,\nhere is another great tutorial for building a project management app for beginners/intermediate developers by Prosper Otemuyiwa - [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/)\n\nGetting Started\n---------------\n\n#### Via Cloning The Repository:\n\n```bash\n# Get the project\ngit clone https://github.com/iamraphson/hackathon-starter.git hackathon-starter\n\n# Change directory\ncd hackathon-starter\n\n# Rename env.example to .env and fill in all the keys and secrets and also generate a secure key for the app using `php artisan key:generate`\n\n# Install Composer dependencies\ncomposer install\n\n# Run your migrations\nphp artisan migrate\n\nphp artisan serve\n```\nObtaining API Keys\n------------------\n\nTo use any of the included APIs or OAuth authentication methods, you will need\nto obtain appropriate credentials: Client ID, Client Secret, API Key, or\nUsername \u0026 Password. You will need to go through each provider to generate new\ncredentials.\n\n**Hackathon Starter 2.0 Update:** I have included dummy keys and passwords for\nall API examples to get you up and running even faster. But don't forget to update\nthem with *your credentials* when you are ready to deploy an app.\n\n\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/1000px-Google_2015_logo.svg.png\" width=\"200\"\u003e\n\n\n- Visit [Google Cloud Console](https://cloud.google.com/console/project)\n- Click on the **Create Project** button\n- Enter *Project Name*, then click on **Create** button\n- Then click on *APIs \u0026 auth* in the sidebar and select *API* tab\n- Click on **Google+ API** under *Social APIs*, then click **Enable API**\n- Next, under *APIs \u0026 auth* in the sidebar click on *Credentials* tab\n- Click on **Create new Client ID** button\n- Select *Web Application* and click on **Configure Consent Screen**\n- Fill out the required fields then click on **Save**\n- In the *Create Client ID* modal dialog:\n - **Application Type**: Web Application\n - **Authorized Javascript origins**: http://localhost:3000\n - **Authorized redirect URI**: http://localhost:3000/auth/google/callback\n- Click on **Create Client ID** button\n- Copy and paste *Client ID* and *Client secret* keys into `.env`\n\n**Note:** When you ready to deploy to production don't forget to\nadd your new url to *Authorized Javascript origins* and *Authorized redirect URI*,\ne.g. `http://my-awesome-app.herokuapp.com` and\n`http://my-awesome-app.herokuapp.com/auth/google/callback` respectively.\nThe same goes for other providers.\n\n\u003chr\u003e\n\n\u003cimg src=\"http://www.doit.ba/img/facebook.jpg\" width=\"200\"\u003e\n\n\n- Visit [Facebook Developers](https://developers.facebook.com/)\n- Click **My Apps**, then select **Add a New App* from the dropdown menu\n- Select **Website** platform and enter a new name for your app\n- Click on the **Create New Facebook App ID** button\n- Choose a **Category** that best describes your app\n- Click on **Create App ID** button\n- In the upper right corner click on **Skip Quick Star**\n- Copy and paste *App ID* and *App Secret* keys into `.env`\n - **Note:** *App ID* is **clientID**, *App Secret* is **clientSecret**\n- Click on the *Settings* tab in the left nav, then click on **+ Add Platform**\n- Select **Website**\n- Enter `http://localhost:3000` under *Site URL*\n\n**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.\n\n\u003chr\u003e\n\n\u003cimg src=\"https://github.global.ssl.fastly.net/images/modules/logos_page/GitHub-Logo.png\" width=\"200\"\u003e\n\n\n- Go to [Account Settings](https://github.com/settings/profile)\n- Select **Applications** from the sidebar\n- Then inside **Developer applications** click on **Register new application**\n- Enter *Application Name* and *Homepage URL*\n- For *Authorization Callback URL*: http://localhost:3000/auth/github/callback\n- Click **Register application**\n- Now copy and paste *Client ID* and *Client Secret* keys into `.env` file\n\n\u003chr\u003e\n\n\u003cimg src=\"https://g.twimg.com/ios_homescreen_icon.png\" width=\"90\"\u003e\n\n\n- Sign in at [https://apps.twitter.com/](https://apps.twitter.com/)\n- Click **Create a new application**\n- Enter your application name, website and description\n- For **Callback URL**: http://127.0.0.1:3000/auth/twitter/callback\n- Go to **Settings** tab\n- Under *Application Type* select **Read and Write** access\n- Check the box **Allow this application to be used to Sign in with Twitter**\n- Click **Update this Twitter's applications settings**\n- Copy and paste *Consumer Key* and *Consumer Secret* keys into `.env` file\n\n\u003chr\u003e\n\n\u003cimg src=\"http://www.danpontefract.com/wp-content/uploads/2014/02/logo-linkedin.png\" width=\"200\"\u003e\n\n\n- Sign in at [LinkedIn Developer Network](https://developer.linkedin.com/)\n- From the account name dropdown menu select **API Keys**\n - *It may ask you to sign in once again*\n- Click **+ Add New Application** button\n- Fill out all the *required* fields\n - **OAuth 2.0 Redirect URLs**: http://localhost:3000/auth/linkedin/callback\n - **JavaScript API Domains**: http://localhost:3000\n- For **Default Application Permissions** make sure at least the following is checked:\n - `r_basicprofile`\n- Finish by clicking **Add Application** button\n- Copy and paste *API Key* and *Secret Key* keys into `.env` file\n - *API Key* is your **clientID**\n - *Secret Key* is your **clientSecret**\n\n\u003chr\u003e\n\n\u003cimg src=\"https://s3.amazonaws.com/venmo/venmo_logo_blue.png\" width=\"200\"\u003e\n\n\n- Visit the **Account** section of your Venmo profile after logging in\n- Click on the **Developers** tab\n- Then click on the [new](https://venmo.com/account/app/new) link next to **Your Applications (0)**\n- Fill in the required fields: *App Name* and *What Will The App Be Used For?*\n- For **Web Redirect URL** enter: http://localhost:3000/auth/venmo/callback\n- Hit **Create** button\n- Back on the **Developers** tab click on **view** link next to **Your Applications (1) new**\n- Copy and paste **ID** and **Secret** keys into `.env` file\n\n\u003chr\u003e\n\n\u003cimg src=\"https://stripe.com/img/about/logos/logos/black@2x.png\" width=\"200\"\u003e\n\n\n- [Sign up](https://stripe.com/) or log into your [dashboard](https://manage.stripe.com)\n- Click on your profile and click on Account Settings\n- Then click on [API Keys](https://manage.stripe.com/account/apikeys)\n- Copy the **Secret Key**. and add this into `.env` file\n\u003chr\u003e\n\n\u003cimg src=\"https://pixabay.com/static/uploads/photo/2015/05/26/09/37/paypal-784404_960_720.png\" width=\"200\"\u003e\n\n\n- Visit [PayPal Developer](https://developer.paypal.com/)\n- Log in to your PayPal account\n- Click **Applications \u003e Create App** in the navigation bar\n- Enter *Application Name*, then click **Create app**\n- Copy and paste *Client ID* and *Secret* keys into `.env` file\n- *App ID* is **client_id**, *App Secret* is **client_secret**\n- Change **host** to api.paypal.com if you want to test against production and use the live credentials\n\n\u003chr\u003e\n\n\u003cimg src=\"http://33.media.tumblr.com/ffaf0075be879b3ab0b87f0b8bcc6814/tumblr_inline_n965bkOymr1qzxhga.png\" width=\"200\"\u003e\n\n\n- Go to [foursquare for Developers](https://developer.foursquare.com/)\n- Click on **My Apps** in the top menu\n- Click the **Create A New App** button\n- Enter *App Name*, *Welcome page url*,\n- For **Redirect URI**: http://localhost:3000/auth/foursquare/callback\n- Click **Save Changes**\n- Copy and paste *Client ID* and *Client Secret* keys into `.env` file\n\n\u003chr\u003e\n\n\u003cimg src=\"http://img4.wikia.nocookie.net/__cb20130520163346/logopedia/images/8/8d/Tumblr_logo_by_x_1337_x-d5ikwpp.png\" width=\"200\"\u003e\n\n\n- Go to http://www.tumblr.com/oauth/apps\n- Once signed in, click **+Register application**\n- Fill in all the details\n- For **Default Callback URL**: http://localhost:3000/auth/tumblr/callback\n- Click **✔Register**\n- Copy and paste *OAuth consumer key* and *OAuth consumer secret* keys into `.env` file\n\n\u003chr\u003e\n\n\u003cimg src=\"http://iandouglas.com/presentations/pyconca2012/logos/sendgrid_logo.png\" width=\"200\"\u003e\n\n\n- Go to https://sendgrid.com/user/signup\n- Sign up and **confirm** your account via the *activation email*\n- Then enter your SendGrid *Username* and *Password* into `.env` file\n\n\u003chr\u003e\n\n\u003cimg src=\"https://raw.github.com/mailgun/media/master/Mailgun_Primary.png\" width=\"200\"\u003e\n\n\n- Go to http://www.mailgun.com\n- Sign up and add your *Domain Name*\n- From the domain overview, copy and paste the default SMTP *Login* and *Password* into `.env` file\n\n\u003chr\u003e\n\n\u003cimg src=\"https://s3.amazonaws.com/ahoy-assets.twilio.com/global/images/wordmark.svg\" width=\"200\"\u003e\n\n\n- Go to https://www.twilio.com/try-twilio\n- Sign up for an account.\n- Once logged into the dashboard, expand the link 'show api credentials'\n- Copy your Account Sid and Auth Token\n\nProject Structure\n-----------------\n\n| Name                                     | Description                                                  |\n| ----------------------------------       | ------------------------------------------------------------ |\n| **config**/app.php                       | Configuration for service providers and facades              |\n| **config**/auth.php                      | Configuration for password resets                            |\n| **config**/broadcasting.php              | Configuration for broadcasting                               |\n| **config**/cache.php                     | Configuration for cache generation and storage               |\n| **config**/cloudder.php                  | Configuration for cloudinary                                 |\n| **config**/compile.php                   | Configuration for compilation                                |\n| **config**/database.php                  | Configuration for database drivers                           |\n| **config**/filesystems.php               | Configuration for different file systems                     |\n| **config**/facebook.php               | Configuration for Facebook API                     |\n| **config**/github.php                    | Configuration for github API                                 |\n| **config**/mail.php                      | Configuration for mails                                      |\n| **config**/queue.php                     | Configuration for queue                                      |\n| **config**/services.php                  | Configuration for several services like mailgun etc.         |\n| **config**/session.php                   | Configuration for sessions                                   |\n| **config**/ttwitter.php                  | Twitter API config file                                      |\n| **config**/twilio.php                    | Twilio API config file                                       |\n| **config**/view.php                      | Configuration for location of views and view cache           |\n| **controllers**/AccountController.php    | Controller for Account management                            |\n| **controllers**/ClockworkController.php  | Controller for Clockwork API functionality                   |\n| **controllers**/ContactController.php    | Controller for Contact page                                  |\n| **controllers**/Controller.php           | BaseController                                               |\n| **controllers**/FacebookController.php     | Controller for Facebook API functionality                      |\n| **controllers**/GithubController.php     | Controller for Github API functionality                      |\n| **controllers**/HomeController.php     | Controller for Home Page                      |\n| **controllers**/InstagramController.php     | Controller for Instagram API functionality                      |\n| **controllers**/LastFmController.php     | Controller for LastFM API functionality                      |\n| **controllers**/LobController.php        | Controller for Lob API functionality.                        |\n| **controllers**/LinkedinController.php        | Controller for Linkedin API functionality.                        |\n| **controllers**/NytController.php        | Controller for New York Times API functionality              |\n| **controllers**/PaypalController.php     | Controller for Paypal API functionality                      |\n| **controllers**/PinterestController.php     | Controller for Pinterest API functionality                      |\n| **controllers**/ScrapingController.php      | Controller for Web Scraping API functionality                      |\n| **controllers**/SlackController.php     | Controller for Slack API functionality |\n| **controllers**/StripeController.php     | Controller for Stripe API functionality                      |\n| **controllers**/TumblrController.php     | Controller for Tumblr API functionality                      |\n| **controllers**/TwilioController.php     | Controller for Twilio API functionality                      |\n| **controllers**/TwitterController.php    | Controller for Twitter API functionality                     |\n| **controllers**/UploadController.php      | Controller for Upload functionality  |\n| **models**/User.php                      | Model for User.                                             |\n| **models**/UserProfile.php                      | Model for User Profile.                                             |\n| **public**/                              | Static assets (fonts, css, js, img).                         |\n| **resources/views/account**/             | Templates for *login, password reset, signup, profile*.      |\n| **views/api**/                           | Templates for API Examples.                                  |\n| **views**/layouts/alerts.blade.php      | Error, info and success flash notifications.                 |\n| **views**/layouts/app.blade.php     | Base template.                                               |\n| **views**/apiPage.blade.php         | API dashboard template.                                      |\n| **views**/home.blade.php              | Home page template.                                       |\n| **views**/welcome.blade.php              | Welcome page template.                                          |\n| .travis.yml                              | [Travis CI](https://travis-ci.org/) integration.             |\n| .env.example                             | Your API keys, tokens, passwords and database URI.           |\n| composer.json                            | File for loading all php packages.                           |\n| package.json                             | File for loading all necessary node modules.                 |\n| artisan                                  | File for enabling commands to run                            |\n\nList of Packages\n----------------\n\n| Package                         | Description                                                           |\n| ------------------------------- | --------------------------------------------------------------------- |\n| socialite                       | Sign-in with Facebook, Twitter and Github                             |\n| socialite providers             | Sign-in with LinkedIn, Instagram, Foursquare, Bitbucket                                      |\n| cloudder                        | Upload images to Cloudinary                                           |\n| laravel github                  | Github API library                                                    |\n| clockwork                       | Clockwork SMS API library.                                            |\n| goutte                          | Scrape web pages using jQuery-style syntax.                           |\n| laravel framework               | PHP web framework                                                     |\n| twitter                         | Twitter API library                                                   |\n| facebook                         | Facebook API library                                                   |\n| instagram                         | Instagram API library                                                   |\n| linkedin                         | Linkedli API library                                                   |\n| Pinterest-API-PHP                         | Pinterest API library                                                   |\n| lob-php                         | LOB API library                                                   |\n| twilio                          | Twilio API library                                                    |\n| lob-php                         | Lob API library                                                       |\n| tumblr                         | Tumblr library                                                       |\n| lastfm-api-wrapper              | Lastfm API library                                                    |\n| guzzlehttp                      | Simplified HTTP Request library                                       |\n\n\nUseful Tools and Resources\n--------------------------\n- [Laravel Daily](http://laraveldaily.com/) - Awesome laravel tips daily\n- [Laravel News](https://laravel-news.com/) - Laravel and PHP tutorials.\n- [Goodheads](http://goodheads.io) - Laravel, PHP and JS tutorials\n- [Favicon Generator](http://realfavicongenerator.net/) - Generate favicons for PC, Android, iOS, Windows 8.\n\nRecommended Design Resources\n----------------------------\n- [Code Guide](http://codeguide.co/) - Standards for developing flexible, durable, and sustainable HTML and CSS.\n- [Bootsnipp](http://bootsnipp.com/) - Code snippets for Bootstrap.\n- [UIBox](http://www.uibox.in) - Curated HTML, CSS, JS, UI components.\n- [Bootstrap Zero](https://www.bootstrapzero.com) - Free Bootstrap templates themes.\n- [Google Bootstrap](http://todc.github.io/todc-bootstrap/) - Google-styled theme for Bootstrap.\n- [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.\n- [Colors](http://clrs.cc) - A nicer color palette for the web.\n- [Creative Button Styles](http://tympanus.net/Development/CreativeButtons/) - awesome button styles.\n- [Creative Link Effects](http://tympanus.net/Development/CreativeLinkEffects/) - Beautiful link effects in CSS.\n- [Medium Scroll Effect](http://codepen.io/andreasstorm/pen/pyjEh) - Fade in/out header background image as you scroll.\n- [GeoPattern](https://github.com/btmills/geopattern) - SVG background pattern generator.\n- [Trianglify](https://github.com/qrohlf/trianglify) - SVG low-poly background pattern generator.\n\n\nRecommended Laravel Libraries\n-----------------------------\n\n- [laravel-medialibrary](https://github.com/spatie/laravel-medialibrary) - Associated media files with your Eloquent models easily.\n- [laravel-emoji](https://github.com/unicodeveloper/laravel-emoji) - For using emojis in your app\n- [laravel-quotes](https://github.com/unicodeveloper/laravel-quotes) - For using all sorts of quotes especially DJKHALED in your app\n\n\nFAQ\n---\n\n### Why do I get `Token Mismatch Exception` when submitting a form?\nYou need to add the following hidden input element to your form. This has been\nadded in the existing codebase as part of the CSRF protection.\n\n```\n{!! csrf_field() !!}\n```\n\n\n### I get a whoops error when I deploy my app, why?\nChances are you haven't generated the app key, so run `php artisan key:generate`.\nChances are you haven't put your credentials in your .env file.\n\nHow It Works (mini guides)\n--------------------------\n\nThis section is intended for giving you a detailed explanation about\nhow a particular functionality works. Maybe you are just curious about\nhow it works, or maybe you are lost and confused while reading the code,\nI hope it provides some guidance to you.\n\n\u003chr\u003e\n\n### How do flash messages work in this project?\nFlash messages allow you to display a message at the end of the request and access\nit on next request and only next request. For instance, on a failed login attempt, you would\ndisplay an alert with some error message, but as soon as you refresh that page or visit a different\npage and come back to the login page, that error message will be gone. It is only displayed once.\nAll flash messages are available in your views via laravel sessions.\n\n\u003chr\u003e\n\n### How do I create a new page?\nA more correct way to be to say \"How do I create a new route\". The main file `routes.php` contains all the routes.\nEach route has a callback function associated with it. Sometimes you will see 3 or more arguments\nto routes. In cases like that, the first argument is still a URL string, while middle arguments\nare what's called middleware. Think of middleware as a door. If this door prevents you from\ncontinuing forward, you won't get to your callback function. One such example is a route that requires authentication.\n\n```php\nRoute::get('/account', 'UserController@getAccount');\n```\n\nIt always goes from left to right. A user visits `/account` page. Then `auth` middleware\nchecks if you are authenticated:\n\n```php\n Route::get('/account', [\n        'uses' =\u003e 'AccountController@getAccountPage',\n        'as'   =\u003e 'account.dashboard',\n        'middleware' =\u003e ['auth']\n]);\n```\n\nIf 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.\n\nHere is a typical workflow for adding new routes to your application. Let's say we are building\na page that lists all books from database.\n\n**Step 1.** Start by defining a route.\n\n```php\nRoute::get('/books', 'BookController@getBooks');\n```\n---\n\n**Step 2.** Create a new model `Book.php` inside the *app* directory. You can simply run `php artisan make:model Book`\n\n```php\n\nnamespace App;\n\nclass Book\n{\n    /**\n     * The attributes that are mass assignable.\n     *\n     * @var array\n     */\n    protected $fillable = [\n        'name', 'isbn',\n    ];\n}\n\n```\n\n**Step 3.** Create a migration file like so: `php artisan make:migration create_books_table`\n\n```php\n\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBooksTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('books', function (Blueprint $table) {\n            $table-\u003eincrements('id');\n            $table-\u003estring('name');\n            $table-\u003estring('isbn');\n            $table-\u003etimestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::drop('books');\n    }\n}\n```\n\n**Step 4.** Create a new controller file called `BookController` inside the *app/Http/Controllers* directory. You can simply run `php artisan make:controller BookController`\n\n```php\nnamespace App\\Http\\Controllers;\n\nuse Illuminate\\Http\\Request;\n\nuse App\\Book;\nuse App\\Http\\Requests;\nuse App\\Http\\Controllers\\Controller;\n\nclass BookController extends Controller\n{\n    /**\n     * Return all books\n     * @return mixed\n     */\n    public function getBooks()\n    {\n        $books = Book::all();\n\n        return view('books')-\u003ewithBooks($books);\n    }\n}\n```\n\n**Step 5.** Create `books.blade.php` template.\n```php\n@extends('layouts.master')\n\n@section('content')\n    \u003cdiv class=\"main-container\"\u003e\n        @include('layouts.partials.alerts')\n\n        \u003cdiv class=\"page-header\"\u003e\n            \u003ch2\u003e\u003ci style=\"color: #f00\" class=\"fa fa-book\"\u003e\u003c/i\u003eAll Books\u003c/h2\u003e\n        \u003c/div\u003e\n\n        \u003cul\u003e\n        @foreach ($books as $book)\n            \u003cli\u003e {{ $book-\u003ename }} \u003c/li\u003e\n        @endforeach\n        \u003c/div\u003e\n    \u003c/div\u003e\n@stop\n```\n\nThat's it!\n\u003chr\u003e\n\nLaravel Eloquent Cheatsheet\n-------------------\n\n* [Eloquent Cheatsheet](http://cheats.jesse-obrien.ca/)\n\n\nDeployment\n----------\n\nOnce 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\npicks. From my experience, **Heroku** is the easiest to get started with,  deployments and custom domain support on free accounts.\n\n### 1-Step Deployment with Heroku\n\n\u003cimg src=\"http://blog.exadel.com/wp-content/uploads/2013/10/heroku-Logo-1.jpg\" width=\"200\"\u003e\n\n- Download and install [Heroku Toolbelt](https://toolbelt.heroku.com/)\n- In terminal, run `heroku login` and enter your Heroku credentials\n- From *your app* directory run `heroku create`\n- Create a Procfile in your app root. All this file needs to contain is `web: vendor/bin/heroku-php-nginx public` if you prefer to use nginx. or `web: vendor/bin/heroku-php-apache2 public` if you prefer to use Apache.\n- Run `heroku addons:add heroku-postgresql:dev  ` to add a Postgres database to your heroku app from your terminal\n- Lastly, do `git push heroku master`.  Done!\n- Run artisan commands on heroku like so `heroku run php artisan migrate`\n\n**Note:** To install Heroku add-ons your account must be verified.\n\n---\n\u003cimg src=\"http://www.opencloudconf.com/images/openshift_logo.png\" width=\"200\"\u003e\n\n- Create an account at https://www.openshift.com/\n- Create a Laravel application with mysql-5.5 or postgresql-9.2\n    - $ rhc app create laravelapp php-5.4 mysql-5.5 --from-code=https://github.com/iamraphson/hackathon-starter\n- And you are done!\n\n\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/f/ff/Windows_Azure_logo.png\" width=\"200\"\u003e\n\n- Login to [Windows Azure Management Portal](https://manage.windowsazure.com/)\n- Click the **+ NEW** button on the bottom left of the portal\n- Click **COMPUTE**, then **WEB APP**, then **QUICK CREATE**\n- Enter a name for **URL** and select the datacenter **REGION** for your web site\n- Click on **CREATE WEB APP** button\n- Once the web site status changes to *Running*, click on the name of the web site to access the Dashboard\n- At the bottom right of the Quickstart page, select **Set up a deployment from source control**\n- Select **Local Git repository** from the list, and then click the arrow\n- To enable Git publishing, Azure will ask you to create a user name and password\n- Once the Git repository is ready, you will be presented with a **GIT URL**\n- Inside your *Hackathon Starter* directory, run `git remote add azure [Azure Git URL]`\n- To push your changes simply run `git push azure master`\n - **Note:** *You will be prompted for the password you created earlier*\n- On **Deployments** tab of your Windows Azure Web App, you will see the deployment history\n\n\n**Note:** Alternative directions, including how to setup the project with a DevOps pipeline are available at [http://ibm.biz/hackstart](http://ibm.biz/hackstart).\nA longer version of these instructions with screenshots is available at [http://ibm.biz/hackstart2](http://ibm.biz/hackstart2).\nAlso, be sure to check out the [Jump-start your hackathon efforts with DevOps Services and Bluemix](https://www.youtube.com/watch?v=twvyqRnutss) video.\n\n## Contributing\n\nThank you for considering contributing to Hackathon Starter.\n\n## Security Vulnerabilities\n\nIf you discover a security vulnerability within Hackathon Starter, please send an e-mail to Ayeni Olusegun at nsegun5@gmail.com. All security vulnerabilities will be promptly addressed.\n\n## Credits\n* [Sahat Yalkabov](https://github.com/sahat/hackathon-starter)\n* [Prosper Otemuyiwa](https://github.com/unicodeveloper)\n\n## How can I thank you?\n\nWhy 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!\n\nDon't forget to [follow me on twitter](https://twitter.com/iamraphson)!\n\nThanks!\nAyeni Olusegun.\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE) for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamraphson%2Fhackathon-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamraphson%2Fhackathon-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamraphson%2Fhackathon-starter/lists"}