Inspiration

Being all college students, we have all gotten into a Situation where you have a lot of Difference assignments due in a short time (such as a week) and it can be hard to figure out what needs to be worked on when. We felt that having an App where we could input our current assignments, and have it make a Personalized "To-Do Today List" would benefit us greatly.

What it does

In a nut shell, the app allows a user to input all of their current assignments, such as upcoming Exams, Projects, or Homework, and the app with be able to determine what needs to be worked on today. The app only has limited functionality such as adding new assignments or showing the assignments that need to be worked on today.

Note

I would like to point out that this Project was a team effort. Each Part of the Project was written/designed by different members of the team, therefore the following questions will be split to allow each person to give a response.

How I built it

The parts were divided in the following way: Nikolai > Back end-Development, Gowtham > Database Management, Dylan > Front end-Development, Joseph > Back to Front Development.

Nikolai - My Back-end Code was written in Java, using Eclipse. My task was to make the actual functionality of all the programs. So I made both the Algorithm to determine which projects should be done today, and the actual code for the Main Classes like the Assignment Object Class, and the Support Classes, like a Tuple Class to allow methods to return 2 things. To Make the Algorithm, I actually asked people who would walk into the room, specific questions, such as "If you had a Homework due in 2 Days, that you did 40 percent of, would you work on it" (An Actual Output from a random question generator), and using the Data collected I was able to formula an Algorithm to Calculate which Assignments should be done that Day.

Joseph - I did the front end development and design of the project with Dylan Bowers. We worked inside of Android Studio getting the design and functionality of how we wanted the app to flow and be viewed by a user. The overall layout of the app was thought of in order to allow the user to easily add, view, and change what they want with ease.

Gowtham - In order to have a personal planner data needs to be stored in the app. The storage of the data is done by the SQL database method. For this hackathon I learnt how to use a SQL database to store information and produce it on a list. I also learnt of to add an app to the google cloud therefor connecting to the google cloud.

Dylan - My role was to develop the front-end user interface (XML) and make sure everything flowed together well. I also undertook the role of integrating Nikolai's back-end infrastructure into the application with Joseph Isble (if you check the repository, there's TONS of raw java files he wrote). Not having any experience with XML at all, it was quite the challenge to learn how to properly build an interface. Eventually I began to grasp the structural aspects of XML and the app's development rapidly accelerated.

Challenges I ran into

Nikolai - Ignoring the usual code Errors, I only ran into 1 major problem, actually creating the Algorithm. This was due to the fact that each person gave unique answers, so some people would work on a specific homework Assignment, but some wouldn't. So, about 50% of the data I collected was too balanced (Between yes/no) to actually create a data point. However, I was able to use the other 1/2 in a graph, and predict what people's answers would be to questions I didn't ask.

Joseph - One of the major issues was figuring out why the emulator built into android studio was giving us a memory allocation error. This error was informing us that the emulator did not have enough memory to run what we wanted it to. Fixing this error was due to a poorly chosen graphic that was taking up too much memory. To make this even harder we had no prior knowledge on how to make an android app. Having to learn how the program works how to code with the new programming language within 36 hours was the most difficult aspect we all ran into.

Gowtham - I came into several challenges when creating a SQL database. The first problem I came into is for the app not to over run causing the the app to self collapse. Once that was fixed I ran into a problem where I could not show the list of when the data is stored. I know the data is stored in a list, however it did not show. Data binding was a huge challenge for me.

Dylan - Oh man, there was SO many! First and foremost: XML. I had absolutely no experience in XML whatsoever, so learning it on the spot was definitely the largest challenge for me. Aside from that, there were quite a few frustrating challenges I ran into. One was figuring out why our application was amassing such a gigantic memory usage. It turns out that I used an image that was WAY too big so it was eating all the designated memory. That felt pretty silly to figure out. The second biggest challenge was using Android Studio. Totally unprepared, it took awhile to realize why I couldn't drag elements into the form, how to trace my errors, and so on.

Accomplishments that I'm proud of

Nikolai - This is going to sound repetitive, but I am most proud of my Assignment picking Algorithm. It took a lot of calculations and critical thinking to create an easy to use, and dynamic way to allow for custom Algorithms created by the user on Start up. However I believe I created a very creative and intuitive to this problem.

Joseph - I am proud of being able to learn enough about android app development in order to get this app to perform what we intended. Going into this project with no prior knowledge of android app development I was worried I wouldn't have enough time to understand how the program worked.

Gowtham - I'm proud that I was able to create an SQL data that stores in data into a list. I now believe I have a solid understanding on how SQL works and its importance.

Dylan - Creating the front-end infrastructure of an android application, having never touched mobile app stuff, while using XML, a language I've never tried to use. It was definitely an overwhelmingly satisfying feeling to be able to create such a (relatively) extensive application in such a small short of time with languages I've rarely used.

What I learned

Nikolai - I learned that creating an app takes a lot more work than it seems. But I also learned with the right planning and teamwork, it is more that possible to create a functional and creative app.

Joseph - There is a lot more required for developing an app than I originally thought. Developing an app lead to many errors I have never encountered before and had to learn on the spot how to solve them.

Gowtham - Most importantly I learnt how to use breakpoints in my code to find what is wrong. Also I learnt how to patiently look through our whole code when there is an error.

Dylan - XML and what goes into making an android app. It's definitely quite a pain if you know absolutely nothing, so now that I've learnt quite a bit of XML and mobile app development, it'll be a very useful skill going forward into the future just in case I ever wanted to pursue mobile application development.

What's next for "What Should I Do?"

More features are planned to be implemented: Editing Current Assignments. Removing Assignments. Saving to a Database. A Logo. Auto-removing Assignments that due before today (Every day, any app that was due the day before, would be removed from the List)

Note Some of these things might be implemented between now and the noon deadline. Also, we are writing this after being up for 20+ hours, so we apologize for any blatantly obvious grammatical mistakes. Team 4

Share this project:

Updates