<commit_before><commit_msg>Scaffold out base of Modules<commit_after>import React from 'react';

/**
 * A reusable type of lesson plan content that teachers can push to students.
 * Types of Modules should extend this class and implement abstract methods.
 * Instantiate a subclass of Module to create a module (lowercase "m"),
 * which teachers can use.
 */
class Module {
    // TODO: figure out way in ES6 to make methods abstract


    /**
     * [ABSTRACT]
     * Returns a React Component that students will see and interact with.
     * The main user-facing part of this Module.
     */
    getStudentViewComponent() {
        return null;
    }

    /**
     * [ABSTRACT]
     * Returns a React Component that teachers will interact with to create
     * a module. Should contain form fields etc. that let teachers customize
     * the module.
     */
    getEditViewComponent() {
        return null;
    }

    /**
     * [ABSTRACT]
     * TODO: flesh out spec of how this'll work
     * Returns a list of actions or action creators that correspond to the
     * views' events.
     */
    getActions() {
        return null;
    }

    /**
     * [ABSTRACT]
     * TODO: flesh out spec of how this'll work
     * Returns a list of stores that this Module will use.
     */
    getStores() {
        return null;
    }

}

{'fraction_non_alphanumeric': 0.07957957957957958, 'fraction_numerical': 0.0007507507507507507, 'mean_word_length': 2.2832512315270934, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1439395', 'n_tokens_mistral': 371, 'n_tokens_neox': 356, 'n_words': 157}