Git Product home page Git Product logo

lingi2255-2018-superform-ms-02's Introduction

SuperForm

Synopsis

SuperForm is a data sharing manager that lets users insert information in a single input form to then share it on multiple channels (Facebook,Mail,Twitter,RSS,...).

This project is a web applciation written in Python and use the framework Flask.

SuperForm is currently used at UCLouvain.

Motivation

As a huge information sharer, the INGI department of UCLouvain, and especially the secretariat, manage different channels. The insertion part is a long and painful task, the differents channels have multiple layouts that need a lot of human modification to fit with.

The main goal of this project is to simplify this task by providing a unique form that will manage layouts,necessary fields and sharing part.

A validation part is also an important feature of this project to let everyone insert data and then verify that it suits with the channel goal.

Installation

SuperForm has the following dependencies:

  • Python 3.5
  • Flask 1.0.2
  • SQLAlchemy 1.2.8
  • Jinja 2.10
  • Setuptools 39.1.0
  • Onelogin 1.4.0

How to run it?

Superform needs some instructions before to run the app:

from superform import models
from superform import app
app.app_context().push()
models.db.create_all()

Tests

Be in Superform/superform folder and then 'pytest -v' in your terminal. All tests are under superform/tests.

How to write a plugin/module

A plugin is a simple python file (called a module) that needs some function and variables to work in our Superform system. This file should contain :

  • a variable called FIELDS_UNAVAILABLE. This is a list of field names that are not used by your module. This names must match with post variables.
  • a variable called CONFIG_FIELDS.This is also a python list. This lets the manager of your module enter data that are used to communicate with other services. Example : The mail where the information must be send.
  • a function called run with as many arguments as you want (**kwargs).

Facebook plugin :

in order to run facebook login plugin, ou must run the app on https://localhost:5000/

flask run
  • Then run it with https with your files .key and .pem in your command
flask run --cert rootCA.pem --key rootCA.key
  • You're now logged in, you can use facebook login. To log in, create a new post, you'll see one new button on the navbar. If you're already logged in on facebook with your browser but you never used this app, please log out and sign in again.

  • It's only the beginning, we are fixing the SSL issue with testshib, and we are doing protective programming with tokens and login buttons

GCal plugin:

In order to run the GCal plugin, you must first create a project on the Google API at the following link: https://console.developers.google.com/, this will give you an Application ID that we will use later. THen, you must create an OAuth Client ID in the credentials tab. This will provide you a client ID and a client secret. Note that you don't need to download the JSON file of the credentials. Lastly, you will need to enable Google Calendar with your project by finding him on the library tab. Then you can connect to the Superform application and create a new channel linked to gcal. You will now need to configure it with the 3 different values that you found earlier when registering the Application to the Google API. After that, you just need to set up the configurations for the corresponding gcal channel and you can now post on Google Calendar through Superform.

Contributors

Kim Mens - @kimmens

Nicolas Detienne - @NDetienne

Anthony Gego - @anthonygego

Ludovic Taffin - @Drumor/@ltaffin

lingi2255-2018-superform-ms-02's People

Contributors

drumor avatar schlesseryannick avatar darkyne avatar oxnoctisxo avatar lade-odoo avatar anthonygego avatar jereminet avatar marcomans avatar amandyna avatar noemievst avatar nicogol avatar hbaudhuin avatar mstguillain avatar xjyssg avatar roussieau avatar kimmens avatar mvanderbeek123 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar Vdb Alexis avatar Gilles Charlier avatar  avatar

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.