Reversible Learning

Life is crazy hectic. Keep your learning Simple, & Organized with Reversible-Life Long Learning

Our Vision

Reversible Learning application will provide a platform for users to write questions and answers to flashcards. Eventually, users can use their flashcards for various purposes, such as studying while they are in their schooling years, or when their scholastic years are behind them but are interested in brushing up their knowledge. By storing personal questions on the app, we can create a place to archive the knowledge individuals have acquired throughout their entire life.

Target Audience

Everyone learns throughout their schooling career; some people need extra help to finish schooling, while others desire to learn well after school. Physical notes can take up a lot of space, but with Reversible Learning, it will be easy to keep track of your learning throughout your entire educational journey. Our target audience is anyone who wish to learn !


Key Features

Make Flashcards

Create cards with questions on one side and answers on the other.

User Profiles

Make your own profiles so your cards are never lost.

View Cards

Check out the flashcards you have created, you can flip to see each side.

Sort Cards

Arrange your cards by folders, one card be placed into multiple folders.


Check out this video to get a feel for Reversible Learning:


Yelizaveta Yashin

I gained knowledge and experience in two main aspects, teamwork and design architecture. I have a great team and thanks to this, I improved my communicational skills, my confidence and learned how to work and overcome obstacles with other team members. Finally, I gained knowledge in software development, specifically I learned how important it is to break a project into separate seams to make software development easier.

Scott Ishfeld

I gained two major skills throughout this project: understanding the importance of setting intermittent deadlines during project sprints and organizational skills. During our iterations I realized how important it was that we set smaller goals for design and development throughout our iteration, and the importance of making sure everyone knows when certain project features will be complete. I also learned valuable skills in regards to organizing project work, distribution of project work across the development team and how to properly coordinate team members to minimize confusion and create comfort.

Syed Ali Ahsen M. Jafry

After this project I have matured so much as a programmer. I learned to use Git via GitLab & developing applications using Android Studio among many other things. I learned the importance of communication & team work. This project was a great simulation of a practical work environment which will help me in the long run. Most importanlty I made amazing friends in the shape of team members.

Chowdhury Abdul Mumin Ishmam

For the duration of this project, I learned how software architecture can be crucial for a system’s development and maintenance life. Also, I discovered how communication can be key as it helps build trust team-wide for project success.

Leonardo Warsito

Working on this project, I have gained a lot of valuable experience. First of all, I’m able to understand and practice the Agile Methodologies. This experience will be helpful towards working on other projects. Secondly, I’m able to experience working in a team environment, improving my communications skills and understanding the best way to work in a group. And finally, I’m able to give understand more about the testing of an application and everything that makes it up. From the single unit test to the whole acceptance tests.

Saif Mahmud

This is a project that improved my time management, communication skill, how to think with the team to handle bigger problems. I have learned how a team is formed and to make myself more available for the project and the team. In this project I am blessed with such passionate and helpful group members from whom I also have learned a lot. Also our course coordinator Jonathan Boisvert taught us the proper way to think of a projects at bigger scale. Finally, after this project, now I am able to work on a project from top to bottom including creating graphical user interface and testing.


Overall Journey & Team Strategy

When we realized the importance of creating inter milestone goalposts, or dates to have certain features complete so we could work on top of them, our organization and cohesion skyrocketed. By creating a working environment high in overall organization and cohesion between feature groups inside our overall app, we minimized the time spent figuring out who wrote what, allowing us to focus on completing features with the confidence that it will fit in to the overall application well.

Project Velocity

Velocity Diagram

In iteration 1, we were not quite sure what we could get done or how long it would take us to create an app. Then, in iteration 2, we really focused on what we could complete and made sure we completed all the work we promised to finish, so all our user stories were completed. In iteration 3, our focus was mainly on the testing framework, so while we did focus on a few features, with a few user stories, some implementation was pushed back because we had so many individuals on testing, leaving us with less working hours on the new features and user stories.

Development Experience

We started off wanting to create an app feature complete with flashcards, user created tests and quizzes, maybe even creating social tests and allowing users to challenge their friends to beat their score on tests, but we realized how time consuming it is to create a bug free app with all the features of convenience an app needs to an enjoyable user experience, and as a result we needed to cut back on some of the features to create a comfortable and enjoyable app for storing flashcards.

What we learned

We learned the importance of communication and having clear goals when working in a development team. We found great success in creating divisions in the work, and assigning specialists in each area of the code. We lose a small amount of general knowledge of our code during the iteration, but we can make up for that by having our code specialists explain the code, so by the deadline we are all comfortable with what has been written. This divide and conquer method worked very well for us, and by making sure everyone knew who was responsible for what, we maintained an efficient and organized work environment