Giter Site home page Giter Site logo

legion's Introduction

Quessly server-side infrastructure: Legion

Central repository for the server-side installation of Quessly.

CI status codecov Docs available OpenAPI specs available

Lead maintainer: Buğra Ekuklu

What is this?

It is a toy-project of mine, containing server-side implementation of a platform called Quessly.

Quessly is a platform, where you can solve, write questions and do examinations as a both student or teacher. It will be supported in mobile platforms, such as iOS and Android, as well as desktop operating systems, Windows and macOS. The platform aims to combine power, mobility and portability of the smartphones and personal computers in the field of education. It is expected to be released in 2021-Q4.

It is empowered by the technologies found in the Elixir ecosystem, and tries to be one of the good examples of it. This application features the following libraries. The list is not exhaustive.

How to use it?

Install the umbrella dependencies, configure the project from the configuration files located in **/config/${ENVIRONMENT}.exs. To scaffold the database and download the databases for reverse IP geocoding, you can use the Mix task.

To give an illustration, we're going to run the unit tests with the following commands.

$ MIX_ENV=test mix deps.get      # retrieve the project dependencies
$ MIX_ENV=test mix legion.setup  # scaffold database and download 
                                 # specific files (such as MaxGeoIP databases)
$ mix test                       # run ExUnit testing suite

Documentation

You can build the docs by using ExDoc's Mix task.

$ mix docs

Tests

You can run the tests by using the Mix task of ExUnit.

$ mix test --trace              # although you can remove the --trace
                                # flag to show solely failing tests

Code coverage

You can also calculate the code coverage by running the Mix task of ExCoveralls.

$ mix coverage.html --umbrella

An HTML-formatted coverage report will be located in the /coverage folder after running the command successfully.

Sunburst graph

Current sunburst

License

Licensed under Apache-2, see LICENSE.

legion's People

Contributors

itisbugra avatar

Stargazers

Mehmet Akif DERE avatar

Watchers

Ali Sabri GÖK avatar  avatar Sıddık AÇIL avatar

legion's Issues

Code coverage tool integration

The current code coverage tool ex_coveralls can be used to measure code coverage and report the results to the master server (i.e. Jenkins).

Continuous integration pipeline should require a minimal percentage of code coverage to allow merges.

Why not git hooks?

Sometimes we might want to push some code without testing it, which should be in neglible numbers.

Landing page

We should have a better landing page at all.

  • Hyperlink to the ExDoc documentation.
  • A short introduction to the modules found underneath umbrella project.

Caching template parameters to optimize scattering JIT resolution

The automatic parameters should be cached at the registration time of the template, which will make available the determine the parameters scattered during just-in-time resolution.

Motivation

This will allow performance increase in template rendering since unused template variables will not be queried from the persistence layer. However, followings are required to implement the feature.

  • Legion.Templating.Renderer.derive_params/1 should be working and stable.
  • Global queries should be well defined by the tasks.
  • Tasks can be toggled by using global switches.
  • A query planner should be available to filter the queries.
  • The resulting parameters should be made available to the pipeline.

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.