Coder Social home page Coder Social logo

fall-2021-ipro's People

Contributors

a-cordell avatar dantiberi avatar khiemnguyen22 avatar mschray avatar newtwork-error avatar nnguyen17 avatar randguth avatar tovaio avatar

Watchers

 avatar

fall-2021-ipro's Issues

Create progress bar component

Description

As a student, I want to see the progress I've achieved in a game session represented as a progress bar / health bar so that I know how well I'm doing.

Acceptance Criteria

The progress bar component...

  • ... takes a denominator property that represents the total number of questions / total health
  • ... takes a numerator property that represents the number of questions answered / health of the boss
  • ... renders a progress bar with numerator/denominator of it filled up

Prep for dry run

As an instructor, I want to see that my students are ready for the final presentation.

Create algebraic expression parsing algorithm

Description

As students, we want Jebra to be able to convert our string input answers into a format it can understand and compare easily, so that we don't have to worry about string formatting issues when typing our answers (e.g. spaces between terms/operators, unnecessary decimal points, etc.).

As developers, we want to develop an algorithm that parses strings containing expressions into a syntax tree, so we can use it to compare students' string answers to our stored correct string answers regardless of differences in format.

Example

Correct answer in database: "25"
Student input: "25.0"

Correct answer in database: "3a + 2b"
Student input: "3a+2b" or "3*a + 2*b" or similar

These answers are correct, but they aren't the same strings. We want an algorithm that parses these strings into some sort of syntax tree and compares these trees.

For example:

  • "25" --> num(25)
  • "3a + 2b" --> add(mul(num(3), var(a)), mul(num(2), var(b)))

Acceptance Criteria

  • Lexing: algorithm reads through input string and splits it into array of tokens
  • Parsing: algorithm reads through array of tokens and creates a syntax tree
  • Equality: syntax trees can be compared, with commutativity taken into account (e.g. 25 + a == a + 25 or 3a == a*3)

Display 5 random questions of the same subject with a progress bar for demonstration purposes

Description

As developers, we want to have a playable prototype of Jebra so that we can show a quick demonstration of our vision for the game.

Acceptance Criteria

  • Allows user to pick a subject
  • Selects 5 random questions from that subject
  • Displays questions one at a time
  • Progresses to next question once previous question is answered correctly
  • Shows progress via progress bar (#45)
  • Upon completion, congratulate user

Style existing pages.

As a user, I prefer sleek interfaces that are easy to navigate.

  • Home
  • Login
  • Fix responsiveness of styling

Game Progress

Description

As a student, I want to see the number of questions left that I need to solve to defeat the monster.

Acceptance Criteria

  • See the health bar of the monster to know how many questions need to be solved left.

Brainstorm and implement Azure functions.

Description

  • Brainstorm and implement the azure functions we will definitely need for talking with the database.

Acceptance Criteria

  • Implemented azure functions for each brainstormed idea.

Create instructor dashboard

Description

As instructors, we want a page with relevant instructor-only actions so that we can create courses and set up stages with subjects for our students to practice.

Acceptance Criteria

  • Upon instructor login, directs user to instructor dashboard
  • Instructor dashboard has a button to create a course
  • Instructor dashboard has a button to view the course dashboard for each course they are assigned to

Style the signup and login forms.

As a user, I am more likely to use a service if it has a professional and sleek signup page and more likely to enjoy reusing a service if the login process is simple and elegant.

  • signup
  • login

Create Question component

Description

As a student, I would like for algebra problems to be displayed visually during a game session so that I know exactly what problem I should be working on at that moment.

Acceptance Criteria

The Component...

  • ...fetches Question data
  • ...handles case where backend returns malformed data
  • ...displays Question
  • ...accepts input for an answer
  • ...displays the subject name

Create student signup page

Create a signup page for students to join class using their email and course code.

Acceptance criteria:

  • Create a form that takes in student's email and course code
  • Validate input
  • Add students to the database.

Replace Alert Messages

Description

  • Using alert for messages is unprofessional, clunky, and above all annoying as heck.

Acceptance Criteria

  • This needs to be replaced with a document-based feedback system that can also display events by other users on the same session.

Create the Instructor login page for Jebra

Description

Create a page for the user to login to the game

Acceptance Criteria

  • A Form that requires user to provide username and password
  • Able to validate the user's inputs.

Backend Infrastructure For Game Creation + Ending

Description

  • Azure function to support the initialization and ending of a game on our platform.

AC

  • Azure function to receive a subject, course, and instructor info to register a new game/stage in the DB. Then it will return the course code which students can use to join the game.
  • AZ function to end a game given a course id and stage id.

Session Setup

Description

As a teacher, I want to set up a game for my students to join.

Acceptance Criteria

Multiple players

As a teacher, I can invite many students to play the game at the same time.

Acceptance Criteria

Setup Azure web server

Description

-Setup a web server to host our site from an Azure VM or similar service.

AZ functions for stage traversal.

Description:

  • Azure functions to support a course entering, completing, and moving to stages.
  • Scope is limited to just the course for this issue. Other issues will address handling traversal for users.

Format Question data.

As a user, I want to see the questions displayed in the way that I conventionally use them.

  • Install react-latex NPM package
  • Wrap question string in Latex tag
  • Modify question generators to use LaTeX formatting
  • Make sure question is stylized well

Create AZ functions to support stage events.

Description

  • Implement azure functions to support submission and retrieval of stage events. These functions must take into account the relevant join table.

Acceptance Criteria

  • Azure functions to create and retrieve stage events.

Create UI mockups.

As developers, we need to consider how our UI will look and function so we are clear about the goal when we begin developing our product.

Convert and transition to mobile first development.

Acceptance Criteria

  • Existing pages are styled to be fully usable on mobile screen sizes.
  • Mobile-first practices going forward.
  • Don't use absolute positioning or pixel measurements, use flexbox and font-based measurements whenever possible

Publish Website On GitHub Pages

Description

  • Get a live version of the website hosted on GitHub Pages

Acceptance Criteria

  • Website publicly hosted on GitHub Pages. Domain name is not required.

Familiarize yourself with React.

Description

As developers, we want to familiarize ourselves with a versatile and intuitive UI framework like React so that we can quickly prototype and iterate upon a user interface.

Acceptance Criteria

  • Watch / read React tutorials, walkthroughs, etc.

Azure function for sign-in/sign-out and course assignment.

Description

  • We need a backend function to assign a user to a course. The function should only act if the user isn't already assigned to the course in question.
  • We need to be able to have a user sign in and sign out.

Acceptance Criteria

  • An Azure function which implements the above.

Create QuestionFetch component

Description

We don't want to re-fetch data whenever possible. If we already have a QuestionModel object, we can just render that data without refetching it.

Acceptance Criteria

  • Change the Question component to take in two properties: questionData: QuestionModel and onSolve: () => void and just simply render the question content.
  • Create a QuestionFetch component that fetches the question data and passes it to a Question component.
  • Make the Play page use the QuestionModels that it already fetched from the GetQuestionsBySubject endpoint.

Design UX flowchart for game creation / joining process

NOTE: Closed by mutual agreement, since designing a UX flowchart is not the highest priority right now.

Description

As a student, I want to participate in a game session with my classmates so that I can demonstrate my algebra skills in a gamified manner.

As a teacher, I want to establish an algebra game session for my students to join so that I can evaluate my students' understanding of algebra.

Acceptance Criteria

Create a visual flowchart (with preliminary mockups of UI) of the user experience for creating game sessions (teachers) and joining game sessions (students).

  • Game creation UX flowchart
  • Game joining UX flowchart
  • Stored as PNG files in repository

Create tool to locally deploy backend + DB for development

Description

As front-end developers, we need a guide to set up a local database, so that we can utilize it in a development environment without depleting Azure credit.

Acceptance Criteria

  • Create a guide that shows us how to set up an SQL database locally and populate it with the appropriate tables and sample rows
  • Show how to configure the backend to connect to this SQL server

Style existing pages.

As a user, I prefer to interact with sleek and easily navigable interfaces.

  • Signup
  • Options

Plan out the backend database architecture.

Description

As developers, we want to plan out the architecture of our backend so that we can implement our backend easily without running into issues or avoidable refactors.

Acceptance Criteria

  • Create database diagram, which will be kept updated

AZ Function: Stage ID at login.

Desc.

-Modifications to retrieve stage id.

#AC
-Modify UserLogin to also return stage id.
-Modify UserLogin to also return a model.

Send PUT request to UserSignIn upon Student Log In form submission

Description

As students, we want to join a game once we sign in with our email and course code so that we can quickly join our teacher's Jebra session.

Acceptance Criteria

  • When user clicks the button to log in, send a PUT request to the UserSignIn Azure function with the course code and user email

Create AZ functions to support statistics.

Description

  • Implement Azure functions for submitting and updating statistic information in the database. Must involve the join table.

Acceptance Criteria

  • Implemented Azure function(s) for submitting and retrieving statistic information.

Session Overview Page

Description

As a teacher, I want to see an overview of how my students performed.

Acceptance Criteria

Student answer feedback

Description

As a student, I want to see whether or not the answer I provided was correct, so that I can self-evaluate my skills and figure out what I did wrong.

Acceptance Criteria

  • Visual indication that shows up on student's screen that tells them if they got the answer correct

Mobile Compatibility

Description

As a student, I want to be able to access the app from either a mobile or desktop/laptop environment.

Acceptance Criteria

  1. Responsive, mobile-first, web design.

Mobile Responsiveness

As a user, I want to be able to practice my math from both a desktop and my mobile phone.

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.