Code Monkey home page Code Monkey logo

laravel.io's Introduction

Tests Coding Standards

Laravel.io

This is the repository for the Laravel.io community portal. The code is entirely open source and licensed under the MIT license. We welcome your contributions but we encourage you to read the contributing guide before creating an issue or sending in a pull request. Read the installation guide below to get started with setting up the app on your machine.

Sponsors

We'd like to thank these amazing companies for sponsoring us. If you are interested in becoming a sponsor, please visit the Laravel.io GitHub Sponsors page.

Requirements

The following tools are required in order to start the installation.

Installation

Note that you're free to adjust the ~/Sites/laravel.io location to any directory you want on your machine. In doing so, be sure to run the valet link command inside the desired directory.

  1. Clone this repository with git clone [email protected]:laravelio/laravel.io.git ~/Sites/laravel.io
  2. Run composer install to install the PHP dependencies
  3. Set up a local database called laravel
  4. Run composer setup to setup the application
  5. Set up a working e-mail driver like Mailtrap
  6. Run valet link to link the site to a testing web address
  7. Configure the (optional) features from below

You can now visit the app in your browser by visiting http://laravel.io.test. If you seeded the database you can login into a test account with testing & password.

GitHub Authentication (optional)

To get GitHub authentication to work locally, you'll need to register a new OAuth application on GitHub. Use http://laravel.io.test for the homepage url and http://laravel.io.test/auth/github for the callback url. When you've created the app, fill in the ID and secret in your .env file in the env variables below. You should now be able to authentication with GitHub.

GITHUB_ID=
GITHUB_SECRET=
GITHUB_URL=http://laravel.io.test/auth/github

Algolia Search (optional)

To get Algolia search running locally, you'll need to register for a new account and create an index called threads. Algolia has a free tier that satisfies all of the requirements needed for a development environment. Now update the below variables in your .env file. The App ID and secret keys can be found in the API Keys section of the Algoila UI.

SCOUT_DRIVER=algolia
SCOUT_QUEUE=true

ALGOLIA_APP_ID=
ALGOLIA_SECRET="Use the Write API Key"

VITE_ALGOLIA_APP_ID="${ALGOLIA_APP_ID}"
VITE_ALGOLIA_SECRET="Use the Search API Key"

VITE_ALGOLIA_THREADS_INDEX=threads
VITE_ALGOLIA_ARTICLES_INDEX=articles
VITE_ALGOLIA_USERS_INDEX=users

In order to index your existing threads, run the following command:

php artisan scout:import App\\Models\\Thread

New threads will be automatically added to the index and threads which get updated will be automatically synced. If you need to flush your index and start again, you can run the following command:

php artisan scout:flush App\\Models\\Thread

Twitter Sharing (optional)

To enable published articles to be automatically shared on Twitter, you'll need to create a Twitter app. Once the app has been created, update the below variables in your .env file. The consumer key and secret and access token and secret can be found in the Keys and tokens section of the Twitter developers UI.

TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_SECRET=

Approved articles are shared in the order they were submitted for approval. Articles are shared twice per day at 14:00 and 18:00 UTC. Once an article has been shared, it will not be shared again.

Telegram Notifications (optional)

Laravel.io can notify maintainers of newly submitted articles through Telegram. For this to work, you'll need to set up a Telegram bot and obtain a token. Then, configure the channel you want to send new article messages to.

TELEGRAM_BOT_TOKEN=
TELEGRAM_CHANNEL=

Fathom Analytics (optional)

To enable view counts on articles, you'll need to register a Fathom Analytics account and install it on the site. You will then need to create an API token and find your site ID before updating the below environment variables in your .env file.

FATHOM_SITE_ID=
FATHOM_TOKEN=

Commands

Command Description
vendor/bin/pest -p Run the tests with parallel execution
php artisan migrate:fresh --seed Reset the database
npm run dev Build and watch for changes in CSS and JS files

Maintainers

The Laravel.io portal is currently maintained by Dries Vints and Joe Dixon. If you have any questions please don't hesitate to create an issue on this repo.

Contributing

Please read the contributing guide before creating an issue or sending in a pull request.

Code of Conduct

Please read our Code of Conduct before contributing or engaging in discussions.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

License

The MIT License. Please see the license file for more information.

laravel.io's People

Contributors

anthonyconklin avatar bobbyborisov avatar clauddiu avatar dependabot[bot] avatar digitlimit avatar driesvints avatar faissaloux avatar fetzi avatar grahamcampbell avatar introwit avatar iruoy avatar joedixon avatar joelbutcher avatar joshuamabina avatar justinseiter avatar laravel-shift avatar mattstauffer avatar mikicaivosevic avatar mitchellvanw avatar msurguy avatar nickstr avatar paras-malhotra avatar pushpak1300 avatar rattone avatar ryangjchandler avatar ryanwinchester avatar spencerdeinum avatar stylecibot avatar summerblue avatar tomhatzer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

laravel.io's Issues

Forum: stress test and optimize

Stress test the forum to identify capacity and any notable performance issues. The current laravel.io forums get about 18k pageviews per day, so we need to be able to match that and then some.

Decide on a rating system.

Since this site is designed to allow the community to manage itself, a rating system is necessary to determine what content should be promoted and what content should be removed.

We must analyze various options, measure the strengths and weaknesses of each and design one for pastes, articles, and forum threads.

Paste: create initial foundation

Paste foundation allows for files to be pasted or dragged into the window. Pastes can be saved. Users can comment on pastes and the comments can be rated. Pastes can be published by their owner globally so that people can see a breakdown of the problem and the solution.

The goal of the additional mechanisms being added is to turn what is normally only IRC-based help into a persistent resource available via Google or our own site. This can help us make the most out of the volunteer help provided by the community.

Laravel IO 2.0

This is a general overview of all the features that the new laravel.io website will have. We'll use this as an overview to check for things missing and to check off features which are completed.

Initial development is being handled by the core team to ensure that the conventions / vision are established. Should one feel like contributing in some way to the completion of this list, definitely comment first on the individual task.

General

  • Document coding conventions (#12)
  • Decide on workflow for assets management and design tools (#11)
  • Add Mandrill for email transaction (#24)
  • Add soft deletes to everything (#25)
  • Automate database backups (#26)
  • Add maintenance page (#28)
  • Add google analytics (#29)
  • Add hosted by FortRabbit (#36)
  • Contributors: create contributors page (#42)
  • Contact: enable contact (#43)
  • Add Laravel Weekly Subscription Form (#45)

Homepage

  • list featured blogs and forum posts (#22)
  • define the site (#23)

Users

  • Enable Github authentication
  • Add user profile page (#18)
  • Add dashboard with subscribed forum threads (#20)
  • Hide profile of banned user (#44)

IRC

  • properly segment out pre auth and post auth chat (#47)
  • Design chat page (#31)

Articles

  • Allow users to create articles (#3)
  • Add RSS feed (#5)
  • Allow admins to lock articles (#6)
  • Integrate tagging system (#7)
  • Add Markdown editor (#8)
  • Enable comments (#9)
  • Decide which stats should be kept (#21)
  • Design (#34)
  • Add Laravel version indicator (#39)

Forums

  • Determine starting sections (#48)
  • Add Markdown editor to posts (#13)
  • Stress test and optimize (#15)
  • Allow users to subscribe to topics (#19)
  • Design (#32)
  • Create initial post explaining the site (#37)
  • Old Forums: prepare for hibernation (#1)
  • Old Forums: move them to an archive url (#41)

Pastebin

  • Create initial foundation (#17)
  • Design (#33)

Launch

  • Change all caching / sessions to memcached (#46)
  • Last minute double-check of all sql queries loaded per page (#27)
  • Browser test / site responsiveness test (#30)
  • Upgrade hosting (#35)
  • Send mailer (#40)
  • Write article that explains the site (#38)

Articles: allow admins to lock them

Locking is a functionality that prevents an article from being modified by users who are not admins. The owner can still delete the article.

Forums: determine starting sections

Determine the forum sections that we'll launch with. Currently, I'm thinking about a laravel 4 help section a laravel 3 help section, and a laravel io section (discussing contribution and the nature of the site).

Any discussion on this topic is naturally welcome.

Contact: enable contact

Create a clearly identifiable opportunity to contact the people managing the site. Before this, we probably want to think it through and make sure that it's implemented in a way that isn't a bad idea.

Add Laravel Weekly Subscription Form

So people can easily subscribe to the Laravel Weekly newsletter. The source code Mailchimp provided can be founded below.

<!-- Begin MailChimp Signup Form -->
<link href="//cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
<style type="text/css">
    #mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; }
    /* Add your own MailChimp form style overrides in your site stylesheet or in this style block.
       We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
</style>
<div id="mc_embed_signup">
<form action="http://laravelweekly.us7.list-manage.com/subscribe/post?u=60fa14809d4de70a885daf382&amp;id=0e7e4b3c30" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>

    <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
    <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
</form>
</div>
<!--End mc_embed_signup-->

ID's as a css selector...

I wonder why the categories, articles and sidebar inside the HTML have a ID.. is it being used in JS or any other part of the application? i would suggest to drop the ID and only use it for javascript things... I allready added some classes to handle the styling.

Old Forums: move them to an archive url

We'll move the old forums, then provide an htaccess that will do 301 redirects to it. In this way, FluxBB URLs will redirect to the archive location and be updated in Google. Additionally, we'll regain the option to use forums.laravel.io for our new forums.

Launch: send mailer

Mail blast their ass off so that everyone knows about the new site and starts creating content so it doesn't seem empty.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.