fall-2021-ipro's Introduction
fall-2021-ipro's People
fall-2021-ipro's Issues
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.
Discuss a simple work breakdown structure.
Prep for dry run
As an instructor, I want to see that my students are ready for the final presentation.
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
- Responsive, mobile-first, web design.
Develop user requirments+ system requirements.
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
Style existing pages.
As a user, I prefer to interact with sleek and easily navigable interfaces.
- Signup
- Options
Create graphic for the Jebra monster
Acceptance Criteria
- GIF of monster stored in client-app/public
- Is cute and not too morbid
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.
Verify unique question generation
Acceptance Criteria
- Implement backend code to ensure generated questions are not already in the database.
Draft midterm presentation.
Include persona stuff
Multiple players
As a teacher, I can invite many students to play the game at the same time.
Acceptance Criteria
Prep for final presentation
As an instructor, I want to see all the progress that my students have made throughout the semester.
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
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
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.
Style existing pages.
As a user, I prefer sleek interfaces that are easy to navigate.
- Home
- Login
- Fix responsiveness of styling
Make Home Page Closer to Design Document
As a developer I want our pages to match the design documents we made.
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.
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.
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.
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 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
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
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.
Implement Database Arch. In Azure
Description
Create tables based on database diagram in Azure
Deliverable
- Implemented tables in Azure.
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
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
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.
Backend Stage Functionality
Description
- Setup Azure functions to support stage/course functionality
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.
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 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
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.
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
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
andonSolve: () => void
and just simply render the question content. - Create a
QuestionFetch
component that fetches the question data and passes it to aQuestion
component. - Make the Play page use the
QuestionModel
s that it already fetched from theGetQuestionsBySubject
endpoint.
Implement problem generators.
As developers, we need to create a variety of problem types for users to stay engaged and interested.
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
or3a == a*3
)
Create alternate monster gifs to reflect question progress.
As a student, I want to see the monster get progressively weaker as I answer questions correctly.
- 100%
- Victory
- Victory Loop
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.
Setup Azure web server
Description
-Setup a web server to host our site from an Azure VM or similar service.
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
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.
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.
Create the instructor signup page for Jebra
Acceptance Criteria
- Create the Signup page
- Validate input
- Link with the login page
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
Session Setup
Description
As a teacher, I want to set up a game for my students to join.
Acceptance Criteria
Mobile Responsiveness
As a user, I want to be able to practice my math from both a desktop and my mobile phone.
Aquire Visual Studio subscription (Free as an IIT student) (Not visual studio code)
Description
As developers, we want to acquire a Visual Studio subscription so that we can utilize its toolkit for developing our backend infrastructure.
Acceptance Criteria
- Obtain Visual Studio subscription
- Install Visual Studio
- Clone repo and open
server-app.sln
in Visual Studio
Session Overview Page
Description
As a teacher, I want to see an overview of how my students performed.
Acceptance Criteria
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.