Monday, April 30, 2018

The Bubbles Are Here

Our chat application is nearing its primary purpose: let multiple users communicate with each other.

Last week, we worked on an aesthetically pleasing yet very important feature of Chinchilla Chat. The app now has speech bubbles to identify from whom the message is from!


An image of what our application currently looks like during a conversation.

As you can see, the appearance is not yet perfected. We would like to place the timestamp either to the side of or below each user's message. We believe it would look cleaner this way. It would also resemble standard chat application practices, making it less foreign to people who use their phones' default messaging apps. Also, the timestamp shown is not very appropriate for our application. We would prefer to use a date and time and will fix this immediately.

Another feature we might implement for this interface in particular is listing the involved users by username on the action bar instead of the app name, "Chinchilla Chat." This would require quite a bit of work and isn't necessarily our top priority, but it would be appealing and make it more clear to users who they are talking to. So, if YellowPanda is using Chinchilla Chat and has initiated a conversation with one other user, known as OrangeUrchin, "OrangeUrchin" will appear in the place where "Chinchilla Chat" is in the image above.

If we were to implement group chats, and YellowPanda was communicating with OrangeUrchin, BlueSquid, and MaroonDormouse, the action bar would more like the image below.

An edited image of what we might implement for conversations between more than two people. There is room for improvement regarding this design choice.

Regarding the chat bubbles, we think it would be fun and appealing to allow users to customize the colors of their chat screens including the incoming and outgoing message bubbles and the background color of the screen. However, both of these features would be quite complicated considering our staff size and remaining time to complete this project. The images used for the bubbles are "stretchy" and can change size depending on the length of one's message. The file types for the images are new to both members of the Chinchilla Chat team, so they would require more research before we could allow this amount of customization.

Our immediate goals right now are as follows:
  1. Retain chats
  2. Fix timestamps
  3. Allow multiple users to communicate with each other
  4. Once goal #3 is implemented, we will add push notification functionality

We still have a lot to think about, research, narrow down, and implement in just a couple of weeks, but we are pushing on, determined to make this Android application as functional, interesting, and useful as we had originally intended, with just a few shortcomings.

Friday, April 20, 2018

Looking Ahead

Sprint one has finally come and gone. Here are the features we have implemented so far:

  • Original logo and custom application launcher icon
  • Night mode theme
  • Email verification tools
  • Password requirements
  • Prohibit users from accessing certain screens before they have logged in
  • Ability to log out once logged in
  • Avoid having the application crash on some button clicks
  • A "spinner" or dropdown menu to narrow the search for a chat partner
This is the Chinchilla Chat "Home" screen if one is not logged in.
Features in progress:
  • Ability for users to keep and modify a list of blocked users
  • A "Settings" screen with multiple settings for a user to personalize
  • An attractive chat log, probably with chat bubbles and time stamps
  • Ability for users to communicate with others
  • Allow users to look back on old chats
  • Prevent duplicates: Firebase prohibits an email from signing up twice, but we have not figured out how to prohibit the same username from being submitted
To do:
  • Push notifications
  • "Disguise" users from other users -- provide anonymity
  • Allow users to enter their interests so that other users can find them based on common interests and initiate a new chat with them
  • Create flag/block/mute features

Of course, these lists will likely grow over the next few weeks. We seem to be getting a grasp of what we are able to accomplish and what, in general, can be accomplished with Firebase and in Android Studio. As seniors, our schedules are busy like anyone else's. As a two-person team, however, our communication has been solid so far, which is key for an important group project such as this. We make sure to discuss the changes we've made as soon as we possibly can. Since we see each other almost daily and we communicate through a mobile app outside of class, it doesn't take long to be made aware of the changes the other person has made.

If the user enters their email and password on the Home screen, that information carries over if they press the "Register" button and reach this screen.
I believe we'll have a clean user interface across all activities in Chinchilla Chat because we are making consistency in appearance a priority.

We hope to allow at least two users to have a text conversation soon. Once that happens, we will clean that appearance up as well and use chat bubbles and time stamps to better separate each message. If we have time, we'd like to allow users to customize the colors of their chat bubbles, but, again, that would come much later. Functionality is most important to us.

The dropdown menu currently contains the strings "nonbinary," "male," and "female." We realize the wording is unappealing on this screen, so we're coming up with ways to restructure these phrase in the mean time. The toast message at the bottom was created for testing purposes and to inform others that the "Find a Match" button does not yet function properly.
We clearly have a lot of goals we'd like to accomplish in just under four weeks, but we're proud of how far we've come so far and we think that, if successful, Chinchilla Chat can be highly beneficial to our target audience at Augustana College.

Saturday, April 14, 2018

Preparation for Sprint 1


Guys, gals, and non-binary pals, the end of our first sprint is upon us! We're doing agile software development in a series of sprints. Each sprint seeks to create a functional product that can then be adapted and improved for later sprints. Right now we're looking at Wednesday, April 18 as the sprint 1 deadline. So what does this mean for Chinchilla Chat?
A cute furry friend to protect your identity and deliver your messages. (Now with an eye!)



What does this entail?

We here at Chinchilla Chat have never worked on Android apps prior to this term. Despite this, we have been working hard to figure out how this all works, and we hope to have a functioning chat app by the end of this sprint. We've designed most of our basic user interface and are working on making it even better with intuitive organization and some minor customization. We have had some trouble figuring out Firebase (which we will be using for the server side of our app), but we're figuring it out. We'll make our best effort to have a simple working product to present on Wednesday!

Some particular features we consider necessary for sprint 1:
  • Cute logo
  • Intuitive user interface
  • Easy and fully functional login, logout, and sign up options (Note, signing up will be restricted to students with @augustana.edu email addresses.)
  • Functionality for two-person conversations
(Note this is not necessarily a comprehensive list.)


Side-by-side Day and Night Mode shown on our login screen.

What doesn't this entail?

Our sprint 1 goals do not include the anonymity or search features that will really make our app stand out. Right now we're just trying to make a simple general chat app that works well so that after this sprint we can use the next 3 weeks to really customize that basic template to our specific purpose - allowing for anonymous communication between LGBTQ+ students at Augustana College. We have an assortment of features we're interested in implementing in our final product, and time will be the greatest factor in what we manage to accomplish.

Some particular features we consider necessary for the final product:
  • Anonymity mode in conversations (enabled by default)
  • Search for friends to chat with
  • Functionality for blocking other users
(Note this is not necessarily a comprehensive list.)

We're super excited to show off our app as development continues!

Sunday, April 8, 2018

Progress: Slowly, but Surely

While deadlines often cause anxiety in most students, Team Chinchilla has risen and made several revelations since beginning our project!

Although a small but, in our professional opinion, necessary feature, we are proud to say that our application logo is coming along nicely! What began as a quick sketch among a few other small sketches has now appeared in digital form. Using GIMP, I've made substantial progress regarding our little Chinchilla Chat logo. See below:

Early sketches for our app's logo.
The current appearance of logo in digital form.

The logo is not finished by any means. We plan to add text (the app name) and eyes to our furry mascot. The animal is, of course, a chinchilla. The bandana represents the casualness, carefreeness, and LGBT+-friendliness of our app, Chinchilla Chat. The rainbow is associated with LGBT+ pride in general.

We've also learned a lot outside of programming specifically for our Android application. Because we were tasked with presenting and demonstrating Android features this week, we learned a lot about speech recognition and text-to-speech features of Android applications. Because our app is a chat app, it involves a lot of text. Adding speech recognition features could allow us to accommodate drivers using the application or individuals who simply cannot access the app by typing and require speech recognition to use it. Text-to-speech would also be helpful for similar reasons, but seems less mandatory. It may not be a feature that has use for our app, but we need to consider both of these features more in the immediate future. However, because we want Chinchilla Chat to be as private and anonymous as possible, requesting permission from users to access their microphone could seem intrusive to some. Again, these features need more consideration. On the plus side, now that we know how to implement these features in general, it will not be too difficult when we write the code for our app if we decide to utilize said features.

We believe that most of our Screens have been created or designed so far. We know what our menus should look like, what color schemes we hope to use, and which screens each button should lead to upon being tapped. I know this seems pretty vague, but our app is more about privately conversing with other individuals than about having dozens of screens. Currently, we are focusing on implementing our most basic features before we move on to enhancements such as custom colors and speech bubbles in chats.

This week, we're hoping to get all of the screens we have planned at this time into the actual program in Android Studio and making sure each button correctly opens the appropriate activity. We'll also be researching more about implementing live chats and more features we can implement using Firebase. We have a lot to do, but we're fairly satisfied with the progress we've made in just a few weeks!