/frappy-documentation

Documentation for the Frappy Framework

Frappy Logo

Frappy is a framework for accelerated demo and prototype development, handling common problems such as authentication, users, content and data management, so you can focus on the actual demo content immediately without spending valuable days setting up the basic needs that exist in almost every project.

This repository contains documentation to all aspects of the Frappy modules and packages, how to use them and extend.

  1. Detailed Documentation
  2. Getting Started
  3. Capabilities
  4. Structure
  5. Usage
  6. Packages

Detailed Documentation

Getting Started

  • Read the User Guide, which explains the database choice and leads you through setting up your project
  • Create your own frontend pages, where you display the information you want users to see. You can use existing endpoints that are registered with the backend modules or create your own to retrieve data and content. Details regarding those endpoints can be found in the respective frontend packages and are the same for NodeJS and Python.
  • Create your own API endpoints that perform operations on the data. You can pass the required store instances (e.g. DataSetStore) into the API registration function and use it to retrieve the data there, when one of your endpoints is called.
    • Call your own analytics/computation code from these custom endpoints and return the result of the analytics.
    • Examples for how to write API endpoints can be found here (NodeJS) and here (Python)

Capabilities

Structure

The various components work together by shared interfaces for the REST communication and database store methods:

Shared Interfaces

Usage

  1. Select your backend language: Node (JS) or Python
  2. Create a new GitHub project using one of the 2 project templates: NodeJS template or Python template
  3. Choose your database (MongoDB or MySQL). This will inform which packages you need in the next step. It is recommended to use Docker to run the database, unless you're a pro.
  4. Select what functionality you need and install the required packages for:
    1. The database storage
    2. The backend
    3. The frontend
  5. Integrate the installed functionality into your project repository

For a detailed guide, please see the User Guide.

Packages

These packages are currently available:

Python Databases NodeJS Databases Python Backend NodeJS Backend Frontend
Authentication frappymongouser js-mongo-user-store frappyflaskauth node-authentication react-authentication
Data frappymongodata js-mongo-dataset-store frappyflaskdata node-datasets react-datasets
Content frappymongocontent js-mongo-content-store frappyflaskcontent node-content react-content