I created LaraBrain as both a free resource to the Laravel community at large and as a valuable educational product for developers wishing to learn more about how a site like this is created. All of the LaraBrain source code and a companion developer's guide is available for an incredibly reasonable price (Learn more). Here's a list of just a few features packed into this project:
- User Account Integration: In the LaraBrain source code you'll find well-constructed (using the LaravelCollective/HTML package), stylized (using Bootstrap) examples of the registration, login, and password recovery views, completely integrated with the account management logic native to Laravel.
- Tip Contribution and Management: Registered users may submit Markdown-formatted tips using a simple web form, and may select up to three categories which will help fellow users locate their tips. Users may later return to their tips (both while still unapproved and subsequent to approval) to improve and update them as they see fit.
- SEO- and User-Friendly URLs: All tips, categories, and usernames are "slugged" when saved and updated, allowing for the generation and processing of friendly URLS (e.g. http://larabrain.com/tips/configuring-mailgun) rather than primary key-based URLS (e.g. http://larabrain.com/tips/453). Friendly URLs not only look better in the address bar and when e-mailed to others, but they also improve SEO.
- Streamlined Tip Contribution Approval: I didn't want the LaraBrain to be inundated with spam, and so implemented a graduated contribution approval process. The first three tips submitted by a registered user must be manually approved by the LaraBrain support team (ahem, me), however once three legitimate tips have been approved it's fair to say the user is not a spammer and so all subsequently submitted tips will be automatically approved.
- Globally Scoped Tips: Laravel has long provided the ability to locally scope model data however this requires explicitly referencing the scope prefix when calling the desired finder. I wanted to filter out unapproved tips from the public interface *everywhere*, and so didn't want to be bothered with constantly having to reference a prefix. The solution is to create and register a *global scope* akin to how Laravel's soft deletion feature is implemented. This is definitively not something covered in the documentation (or seemingly elsewhere for that matter), however you'll find a complete working example in the LaraBrain code.
- Account Profiles: Each registered Laravel user is provided with a public profile page (here's mine: http://larabrain.com/users/wjgilmore), highlighting both submitted and favorited tips. Should an authenticated user visit his/her own page, the page will additionally display any still unapproved tips should the user desired to make further improvements prior to approval.
- Tip Favoriting and Filtering: Authenticated users may favorite tips by clicking a star icon found on each tip's detail page. These tips are aggregated, allowing users to view the most favorited tips via http://larabrain.com/tips/popular. Users may also view only those tips most recently submitted (via http://larabrain.com/tips/new, as well as view tips on a per-category basis (via http://larabrain.com/categories).
- Restricted Administration Console: Specially designated users may access a web-based administration console which provides a streamlined, paginated summary of tips (identifying each as approved and unapproved). Additionally, some simple statistics pertaining to tip status (number submitted, approved, unapproved, etc) are provided.
Questions? Feel free to use the contact form or e-mail us directly at firstname.lastname@example.org.