Inspiration
One of the major problems with the American educational system is limited school hours. If a student has a question on a certain topic, he can easily ask his teacher the question during school. However, what happens if this question arises after school has ended? The student can wait until the following school day, but what happens if this question is “urgent” (perhaps it is needed to complete a homework assignment that is due the next day)? A student typically has two possible solutions: email his teacher or search for the answer online. These solutions are not perfect, though, as the student may find it awkward to email his teacher in some circumstances and the answer to the student's question may not be online (for example, “Is ___ on tomorrow's quiz?”). Moreover, both of these solutions share a major drawback: they do not help other students who may have a similar question. AfterHours provides an effective, alternative solution to this student’s problem by allowing him to easily ask his question to all of his classmates.
What it does
AfterHours is a combination of Google Classroom and Yahoo Answers -- it is a platform on which students can join a class, pose questions to their classmates, and answer questions. AfterHours has been designed with the user experience in mind and is very simple to navigate -- students can join a class and start asking/answering questions within a matter of minutes! Additionally, AfterHours provides a variety of tools that can be used to enhance student communication, including the ability to draw pictures and take photos. The aforementioned features make AfterHours appealing to both students and teachers, as it can be used to foster class discussions.
How I built it
AfterHours was developed using the Android Software Development Kit and Android Studio environment. The application's functionality was programmed in Java and its layouts were programmed in XML.
Challenges I ran into
The greatest challenge I faced was displaying images within discussions. While planning out the functionality of AfterHours, I knew that allowing users to post images would greatly improve the quality of the application. However, I was unaware of how much of a challenge this would be.
Because AfterHours’ images are stored in the cloud, there is a delay between the user's request for an image (after opening a discussion) and the application's retrieval of that image. Initially, “image containers” (which allocate space for images) in discussions were set to only take up as much space as necessary. This caused an issue, for while images were being downloaded, AfterHours would assume they had a width and height of zero. Once these images finished downloading, though, AfterHours would realize that this was not true and start resizing their image containers. If a user were in the middle of reading a post, this would occasionally cause that post to be shifted off of the screen.
After attempting many potential solutions, I came to one that worked: I had AfterHours store image dimensions in a database. Because dimensions (which are just numbers) can be downloaded much quicker than images can, AfterHours is able to find an image’s dimensions and set the size of its image container as soon as the user opens a discussion. As a result of this solution, the resizing problem no longer exists.
Accomplishments that I'm proud of
Overall, I am most proud of AfterHours' user interface. I was able to use a variety of Android features, including newer material design features, in order to make the user experience simple and enjoyable.
What I learned
AfterHours is the most complex application that I have developed. Working on AfterHours allowed me to obtain an appreciation for all aspects of the application development process, especially documentation (a log was kept to track all changes made to AfterHours). Additionally, AfterHours was the first application I built that used databases. The ability to integrate databases with Android applications is an important skill that I am sure I will make use of in the future.
What's next for AfterHours
The next step for AfterHours is publishing it on the Google Play Store. As of now, AfterHours is a fully-functioning application. Although there are a few minor additions that must be made, AfterHours is almost ready to be deployed on the market.
Log in or sign up for Devpost to join the conversation.