Code Monkey home page Code Monkey logo

kumon-math-app's Introduction

kumon-math-app's People

Contributors

jangascodingplace avatar konradpina avatar

Watchers

 avatar  avatar

kumon-math-app's Issues

Complex Substraction

Create a class which generates a tasks to substract two numbers between 100 and 9999. Make sure that your task has only positive values as solution

e.g.

  • 533 - 121
  • 2322 - 992

Create Markdown Documentation on "App Motivation"

Summary:

Develop a markdown-based documentation detailing the motivation and background of the kumon-math-app project, ensuring every team member, especially our newcomers, comprehend why and how this project came to life.

Background:

The kumon-math-app is a unique project developed by the A-levels class of a German school. This project signifies the culmination of a year-long journey undertaken by students who hadn't experienced programming before. The idea was proposed by the class teacher, who envisioned creating an app based on the Kumon learning method.

Objective:

Generate a markdown (.md) file with the following sections:

  • Project Origins:
    • How the idea for the kumon-math-app was conceived.
    • The role of the class teacher in spearheading the idea.
  • student Journey:
    • A recount of the students' experience from having no programming background to embarking on this project.
  • Vision for the App:
    • What the app aims to accomplish in terms of educational value.
    • How it can potentially benefit its users and complement the Kumon method.

Success Criteria:

After engaging with the documentation, readers should:

  • motivation.md file is added to docs/motivation.md
  • Understand the foundational motivation behind the app.
  • Recognize the significance of the Kumon method in the project.

Complex Addition

Write a Generator Class which generates tasks for complex additions with numbers between 100 and 9999

e.g.
982 + 341
1952 + 221

Document the Kumon Learning Method for "kumon-math-app"

Summary

Develop a markdown-based documentation that outlines and explains the Kumon learning method for the benefit of our development team, especially junior members.

Background:

While the kumon-math-app will use the Kumon learning method as a foundational approach, there's a need for a clear and concise documentation that team members can refer to, ensuring everyone understands the core concept behind the app's functionality.

Objective:

Create a comprehensive documentation that covers:

  • A brief history of the Kumon method.
  • Core principles and philosophy behind the method.
  • How the Kumon method applies to teaching math.
  • Benefits of using the Kumon method in learning.
  • Any potential drawbacks or criticisms of the method.

Success Criteria:

Upon reading the markdown document, any team member, irrespective of their prior knowledge about Kumon, should:

  • kumon.md file is added to docs/kumon.md
  • Have a clear understanding of what the Kumon method is.
  • Recognize its benefits and potential drawbacks.
  • Understand its application in mathematical learning.

Notes:

Ensure the document is beginner-friendly, given our team's experience level. Use clear and straightforward language. If there are technical terms related to Kumon, consider adding a small glossary or definitions section.

Implement UI for Solution Submission Methods

Summary:

Develop user interfaces allowing pupils to submit solutions for math tasks using three methods:

  • handwritten input on a canvas-like object
  • taking a picture
  • direct text input
    This iteration focuses solely on creating the UI without any backend validation or AI integration.

Background:

For versatility and catering to different user preferences, the kumon-math-app will provide three methods for pupils to submit their answers. This approach not only makes the app more inclusive but also prepares the groundwork for future AI validation of handwritten and image-based solutions.

Objective:

  • Design and implement the UI for each of the three solution submission methods.
  • Ensure the UI is intuitive and tablet-friendly, given that our primary user device is a tablet with a pencil.

Success Criteria:

  • Users can effortlessly switch between the three methods of solution submission.

Research OCR Solutions for JavaScript

Summary:

Conduct comprehensive research on potential OCR solutions suitable for our React Native application. The goal is to evaluate and shortlist feasible solutions, such as tensorflow.js or other OCR libraries/tools, that can later be integrated into our app.

Background:

To enhance our app's capabilities, we are looking into adding an OCR feature. Before diving into implementation, we need to understand the landscape of available OCR tools, their compatibility with React Native, performance metrics, and other crucial considerations.

Objective:

  • Thoroughly research and evaluate available OCR solutions suitable for JavaScript and in best case React Native.
  • Document findings, comparisons, pros and cons, and provide recommendations for the most appropriate solution(s).

Success Criteria:

  • Comprehensive research document detailing available OCR solutions for JavaScript and React Native.
  • Clear recommendations based on objective metrics and our app's specific needs.

Notes

This research phase is critical for laying a solid foundation for the subsequent implementation phase. The focus should be on gathering objective data and insights to make an informed decision.

complex division

Write a generator class which divides two bigger numbers and will end in integer values.

e.g.

  • 408 / 34
  • 3162 / 31

Develop Standards for Non-Technical Documentation Tickets

Summary:

Create and formalize standards for generating and handling tickets related to non-technical documentation. The goal is to ensure consistency, clarity, and understandability across all documentation tasks that cater to non-technical audiences or purposes.

Background:

As the project expands, there is a growing need for non-technical documentation to guide, inform, and communicate with audiences outside of the development team, such as end-users, stakeholders, or new team members. Having a consistent approach to these documentation tasks will make the process more streamlined and effective.

Objective:

  • Design a set of standards and guidelines for formulating non-technical documentation tickets.
  • Disseminate and familiarize the team with these standards to ensure uniformity in non-technical documentation tasks.

Success Criteria:

  • non-technical-documentation-guide.md file is added to docs/contributing/non-technical-documentation-guide.md
  • Team members have a clear understanding and a standardized approach to non-technical documentation tickets.
  • skeleton: which headers are required for technical documentation tickets and which content should be included? Which headers are just optional?

Notes:

The aim of these standards is to bridge the gap between technical and non-technical audiences. It's vital to stay adaptable and receptive to changes based on real-world application and feedback.

simple division

Create a generator class which divides two numbers. Make sure that your result can only be integer numbers

e.g.

  • 9 / 3
  • 25 / 5
  • 63 / 7

Review and Extend Documentation on Prerequisites, Setup, and Quick Start

Summary:

Review the existing documentation on prerequisites, setup, and quick start for the kumon-math-app. Test its clarity, ease of understanding, and completeness. If any discrepancies or improvements are identified, extend and refine the documentation accordingly.

Background:

To ensure a smooth onboarding process for developers and contributors, it's essential that our documentation is both comprehensive and clear. This task is designed to validate the user-friendliness of our documentation by having real users test and potentially refine it.

Objective:

  • Validate the clarity and ease of understanding of the existing documentation.
  • Ensure all necessary steps and prerequisites are adequately covered.
  • Hands-on Testing: Follow the documentation step by step as if setting up the kumon-math-app for the first time. Ensure that by following the documentation, the app sets up successfully without hiccups.
  • Refine and extend the documentation if gaps, ambiguities, or potential improvements are identified.

Success Criteria:

  • The documentation should be easy to follow for someone unfamiliar with the project.
  • All necessary prerequisites and steps for setup and quick start should be clearly outlined.
  • Users should be able to set up the kumon-math-app without external assistance or resources.

Establish Basic Project Skeleton, Task Addition Guide, and Initial Layout

Summary:

Set up a fundamental project structure for the kumon-math-app. As part of this structure, ensure there's a clear process for adding new mathematical tasks. Begin with the implementation of a rudimentary layout to offer a tangible starting point for the app's development.

Background:

To streamline our development process and ensure consistency across contributions, we need a foundational project skeleton. This basic structure will serve as the blueprint for the app, making it easier for developers (especially newcomers) to contribute and understand the project's flow.

Objective:

  • Develop a coherent project structure that will house the app's various components, utilities, modules, etc.
  • Introduce a guide detailing the process of adding new mathematical tasks.
  • Implement an initial, basic layout for the app to provide a visual starting point for further development.

Success Criteria:

  • The project should have a clear and organized directory structure.
  • New developers should be able to follow the guide seamlessly to add new mathematical tasks.
  • The initial layout provides a foundational visual representation of the app, allowing for further development and refinement.

Notes:

Given our team's diverse experience levels, prioritize clarity and simplicity in both the project structure and the guide. A straightforward setup now will reduce complexities and challenges as the project progresses.

Implement Overview Page for Math Task Profiles

Summary:

Develop an overview page that provides a clear list of available math task profiles. Users should be able to view different profiles and their associated task types. Clicking on a task type should allow users to interact with the selected task type directly.

Background:

To provide a comprehensive learning experience, various math task profiles (e.g., "5-simple", "10-simple") are established, each comprising specific task types. An overview page is essential for users to navigate and select the desired profile and task type for practice or examination.

Objective

  • Create a user-friendly overview page that lists out all available profiles and their corresponding task types.
  • Allow direct navigation to individual task types by clicking on them.

Success Criteria:

  • Clicking on a task type takes users directly to the interaction or practice page for that specific task.
  • The page remains dynamic, meaning changes to the profiles array are automatically reflected in the UI.

Notes

This feature will be only used for development purposes and will be removed on later versions again.

Create an API for debugging

Background:

We will have a testing phase. No one knows exactly how students will use the app and what their handwriting will look like. Therefore, a WebAPI will be provided for this phase. When a student completes a task, the image including the task will be sent to an API.

Task

Please create only a single post endpoint. It should retrieves the following body:

{
  "task": {
      "id": "simple-addition",
      "generated-task": "2 + 7"
  },
  "img": BASE_64_ENCODED_IMAGE
}

The image should be stored on the API-Server System then.

Complex Multiplication

Write a generator class which generates tasks which multiply values between 10 and 9999

e.g.

98 * 105
302 * 7831

Develop Standards for Technical Documentation Tickets

Summary:

Define and document clear standards for creating and managing tickets related to technical documentation. These standards will ensure consistency, clarity, and effectiveness in conveying the requirements and scope of documentation-related tasks.

Background:

As the project grows, so does the importance of well-maintained technical documentation. Ensuring that our documentation tickets adhere to specific standards will make the documentation process smoother, clearer, and more efficient for both writers and developers.

Objective:

  • Establish a set of standards and best practices for creating technical documentation tickets.

Success Criteria:

  • technical-documentation-guide.md file is added to docs/contributing/technical-documentation-guide.md
  • The team has a clear set of standards to follow when creating or managing technical documentation
  • skeleton: which headers are required for technical documentation tickets and which content should be included? Which headers are just optional?

Notes:

These standards aim to streamline our documentation process and improve clarity. As with all processes, it's essential to remain flexible and open to changes based on practical experiences and feedback.

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.