Skip to content

livia01px2019/timagotchi

Repository files navigation

cs0320 Term Project 2020

Team Members: Livia Zhu, David Lee, Ocean Pak, Huy Pham

Team Strengths and Weaknesses:

Huy Pham

Strengths:

  • Fairly comfortable working and learning how to work with HTML & CSS
  • Fairly comfortable with algorithms

Weaknesses:

  • Not too comfortable with SQL
  • Accounting for all edge cases while testing

Ocean Pak

Strengths:

  • Algorithm
  • SQL

Weaknesses:

  • Inconsistent testing
  • Commenting code
  • UI/UX Design

David Lee

Strengths:

  • Machine Learning
  • Debugging

Weaknesses:

  • Front end stuff (Javascript)
  • Commenting
  • Testing
  • Time management

Livia Zhu

Strengths

  • Algorithms
  • Designing
  • Commenting code

Weaknesses

  • Simple mistakes with code
  • SQL
  • Javascript
  • Testing

Project Idea(s): Fill this in with three unique ideas! (Due by March 2)

Idea 1 TIMagotchi

Feed and raise Tim! Customize your baby Tim!

This idea is to create a study platform that encourages students to do their work and do extra learning outside of the classroom. Currently there isn't a lot of products online that monitors and promote student learning. A lot of these tools give little to no satisifcation to the users upon finishing the work, such as MyiMaths (online platform to learn mathematics), myHomework (homework manager) or finishing a test on Quizlet. As such, there is an opportunity to create a platform where students can engage with their online work in a more meaningful and fun manner (inspired by Tamagotchis). By finishing their homework, taking quizzes (generated either by themselves, automatically, or by their teacher/professor), they can get food to raise their baby and provide other necessities. There are two possible modes: Individual and Classroom.

Individual (Baseline) Requirements:

  • Change your baby’s name + image based on the class (the default is Tim)

Included because each baby needs to have a relevant name (not everyone knows Tim and will get the idea of a TIMagotchi!)

  • Learning Tools (Q&A for some user-selected or teacher-inputted topic, or general trivia)

This is the central part of the product, as it allows students to study on the platform by answering questions. It should be the main reason the user is on this platform (hopefully).

  • Register and Storing Accounts

It is very disappointing to the user if everytime they refresh or exit, their progress with their baby is reset. As such, registering and storing their data into accounts is necessary.

  • Tim grows over time and responds based on progress (e.g. joyful when fed, looking at the user with puppy eyes when not fed for a while)

In order to remain consistent with the baby theme, the user must be able to see their favourite teacher/professor grow up as they complete their assignments. Users should also see the reactions of their baby to their actions (e.g. getting answers right or wrong, feeding or not feeding the baby). These functionalities gives the user motivation to study.

Classroom Requirements:

  • Teacher can feed the program some questions pertaining to their curriculum

In order to facilitate student learning, the teacher must be able to provide their class-specific questions into the program. Otherwise, the program is just testing random trivia that is not conducive to learning.

  • Teacher puts extra credit assignments

The ability to put in extra credit is necessary in order to promote learning outside of the classroom.

  • Compare who has the best developed Tim

This helps create friendly competition between students that encourages them to learn more and thus get a more developed Tim.

  • Achievement System / Leaderboard

Once again, this helps create friendly competition between students that encourages them to learn more and thus get a more developed Tim.

Nice to Haves:

  • More sophisticated interactions/scenes for the game
  • Buy your Tim accessories, or items to put around the house
  • Multiplayer functionality, where you can visit (battle?) other Tims
  • Adopting TopHat/iClicker to answer questions in real Tim(e)
  • Maybe integrate with Google Classroom and assignment submission?
  • Once Tim is grown, it has baby Tims to be raised for the next projects
  • Tim(e)Management Platform

Design Challenges:

  • Account System
  • Integrating multiplayer functionality
  • Interactive interface

Algorithmic Component:

Once there is a set of questions that can be continuously fed to the user, we will create an algorithm to change up the questions the students get based on what questions they have gotten right or wrong so far. Part of the algorithm could also lie in determining how similar different questions are from each other.

Additionally, if we end up adding multiplayer functionality, we can create a competition answering mode which will require us to create an algorithm to measure performance so that we can match similarly performing students with each other for competition.

TA Approval: Approved! Looks good.

Idea 2 Dance Dance RevoluTim

This idea is to make our own rhythm game that is somewhat similar to games like Dance Dance Revolution and Guitar Hero that we all enjoyed playing in the past. The twist would be that in this game, the user could pick any song that they want to play and the game would auto-generate a beatmap that actually goes along with the song of their choice.

Main functionality:

  • The actual game would look a lot like DDR except instead of stepping on the arrow keys in real life you would be pressing 4-6 keyboard keys instead.
  • Allowing the user to select any song they want and pulling the corresponding mp3 file from YouTube or another source.
  • Automatically generating a beatmap by somehow extracting the main beat and rhythm from the song.
  • Maybe adding additional features like different difficulties or even a multiplayer mode.

Other functionality:

  • Making other gamemodes like the gravity flipping mode

Main Challenge:

  • Actual creation of the beatmap because being able to work with audio files

TA Approval: Approved pending change, likely yes, good idea, but would also like some added complexity beyond generating a beatmap (because I worry this will just be calling an API)

Idea 3 Resumake

Resumes are one of the most important parts of finding a job or internship— it is often the first thing that any company will see. Many people have trouble with building their resumes: what to put in, what to leave out, how it should look, etc. As Brown student’s we are lucky to have the CareerLab and all its resources to help us on our resume-building journeys. However others may not be as fortunate. This idea is a resume building online tool that will help you create content, format, and refine your resume.

Main Requirements:

  • Accounts for users to store their resumes
  • Different templates for different types of resumes, customizable templates
  • Sample resumes for each industry/job type
  • Creating a “master” resume with all of the different entries possible and having a drag/drop interface that will allow you to customize it for each job you apply for
  • Exporting to PDF/Word etc.

Optional Requirements:

  • Real-time feedback on length/clarity/grammar of entries
  • Selecting your industry/target job and tailoring feedback based on that (e.g. CS should have a programming languages section)

Design challenges:

  • Maybe use NLP or find some library to analyze clarity/grammar/custom feedback etc?
  • Security
  • Speed for real-time feedback
  • Interactive interface

TA Approval: Rejected - There's no clear algorithmic component for this project.

Note: You must resubmit ideas for approval.

Mentor TA: Put your mentor TA's name and email here once you're assigned one!

Meetings

On your first meeting with your mentor TA, you should plan dates for at least the following meetings:

Specs, Mockup, and Design Meeting: (Schedule for on or before March 13)

4-Way Checkpoint: (Schedule for on or before April 23)

Adversary Checkpoint: (Schedule for on or before April 29 once you are assigned an adversary TA)

How to Build and Run

The website is hosted at http://cs32-timagotchi.herokuapp.com/main.

To run locally, clone the repo and navigate into it in Terminal. Enter mvn package and then ./run. You can then access the website in any browswer at http://localhost:4567/main.