Code Monkey home page Code Monkey logo

quark's Introduction

Quark

This is a Laravel package that provides a code application for building platforms to host competitions.

Documentation

The entire documentation is available at: https://quark.sdslabs.co

Setup

  • Create and setup a new Laravel app

  • Add the folowwing repositories to the composer.json's repositories field:

"repositories": [
	{
		"type": "vcs",
		"url": "[email protected]:sdslabs/quark",
		"no-api": true

	},
	{
		"type": "vcs",
		"url": "[email protected]:sdslabs/falcon.git",
		"no-api": true
	}
],
  • Add Quark as a dependency by adding "sdslabs/quark": "dev-laravel-package" to require field in composer.json

  • Add Falcon as a dependency by adding "sdslabs/falcon": "dev-composer-pkg" to require field in composer.json

  • Run

      $ composer update sdslabs/*
    
  • Add SDSLabs\Quark\QuarkServiceProvider::class, under * Package Service Providers... to config/app.php.

  • Remove the migration file for create_users_table and password_resets_table from database/migrations.

  • Add $this->call(SDSLabs\Quark\Database\Seeds\DatabaseSeeder); to DatabaseSeeder under database/seeds.

  • Add following config to .env.example and also to .env:

FALCON_CLIENT_ID=client_id
FALCON_CLIENT_SECRET=secret
FALCON_URL_ACCESS_TOKEN=http://falcon.sdslabs.local/access_token
FALCON_URL_RESOURCE_ONWER_DETAILS=http://falcon.sdslabs.local/users/
FALCON_ACCOUNTS_URL=http://arceus.sdslabs.local/
FALCON_SCOPES=email,image_url
  • ORGANIZATIONS_ALLOWED in .env.example can be provided in master app's .env

  • Update config/auth.php:

    • Update the defaults.guard to falcon
    • Delete the section on guards
  • Run the migrations with:

      $ php artisan migrate
    
  • Run the seeds with:

      $ php artisan db:seed
    
  • Go outside and do a dance ;)

Extending the models in the application

To extend any of the default models, first create the new model.

Then add a line like $this->app->bind(QuarkCompetition::class, AppCompetition::class); to AppServiceProvider.php's register method.

Extending the controllers in the application

Just override the router with your controller's methods

General instructions for this project and the application

  • Don't explicitly call the static methods of any class like Competition::get() or SomethingHelper::help(). Instead use the IoC container or Facades/Contracts .
    e.g. App::resolve(Competition::class)->get()

  • Don't initialise the classes manually like new Competition(). Instead use IoC container's make method.

  • The above practices makes it easier to swap the underlying classes, i.e. the classes used by Quark can be extended by the application and the extended classes will be used inside Quarks's classes/

Working on Quark

  • First you need an application. If you don't have one already setup, setup a demo application following the above instructions
  • Symlink the vendor/sdslabs/quark folder to your local clone of quark.

How can I contribute?

Read here to know our contribution guidelines. Ping us at chat.sdslabs.co to get guidance. You can start with setting up Quark on your machine and try solving a few bugs listed here: https://github.com/sdslabs/quark/issues You can also have a look at the sample app sdslabs/laplace-no-ma that uses Quark.

License

This project is under the MIT license

Community Support

If you are interested in talking to the SDSLabs team, you can find us on our SDSLabs Open Source Discord Server. Feel free to drop by and say hello. You'll find us posting about upcoming features and beta releases, answering technical support questions, and contemplating world peace.

Created by SDSLabs with ❤️

quark's People

Contributors

abhaygupta97 avatar adrijshikhar avatar agrim123 avatar arpitsingla96 avatar asutoshpalai avatar braunson avatar ketanhwr avatar pandeykartikey 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

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

Forkers

scar26

quark's Issues

Group the invites by status and hide their status

Currently, The invites are returned along with status attached with each invite. We should remove the status and group it by the status types and return. This would make parsing at the frontend easier.

Occurence in Code:

// TODO: Group by status and hide the status

// TODO: Group by status and hide the status in invites

Reference: https://laravel.com/docs/5.3/queries#ordering-grouping-limit-and-offset

Discord web hook testing

Master HEAD: Master branch HEAD commit hash at time of post

Laravel Version: Laravel version of the app you are using Quark with

Steps to Reproduce: if any

Issue Presentation Code:

    $limit = $request->has('limit') ? $request->limit : 50; // The line contatining the bug.

Fix StringComparisonJudge class

Master HEAD: Master branch HEAD commit hash at time of post

Laravel Version: Laravel version of the app you are using Quark with

Steps to Reproduce: if any

Issue Presentation Code:

    $limit = $request->has('limit') ? $request->limit : 50; // The line contatining the bug.

Add contributing guidelines

Master HEAD: Master branch HEAD commit hash at time of post

Laravel Version: Laravel version of the app you are using Quark with

Steps to Reproduce: if any

Issue Presentation Code:

    $limit = $request->has('limit') ? $request->limit : 50; // The line contatining the bug.

Add Google Oauth support

Currently, only falcon oauth is supported by quark. Create a wrapper to incorporate Google OAuth.

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.