Sunday, May 13, 2018

Chinchilla Chat: What We've Accomplished

It's the last day before we on the Chinchilla Chat team present the final status of our Android app. While we were unable to complete some of the tasks we had originally proposed for the app weeks ago, we have created a pretty stable app.

New Features:

  • One more theme. Because we now have three themes rather than two, we "Night mode" option from the menu has been removed.
The spinner on our Display Settings screen.
The main menu with "Cool Theme" applied.
The new About screen with the menu opened, displaying only options for Settings, Blocked Users, About, and Log out.
Cleaner settings navigation. The Settings option from the menu leads to a screen with two buttons. One button leads to a screen on which users can change their username or password. The other button allows users to switch between three themes using a Spinner, or dropdown menu.
Reformatted Settings screen, with just two buttons.
  • Blocking users. Users are now able to block other users, which prevents blocked users from starting new chats with the users who have blocked them, as well as preventing users from starting chats or being paired with users whom they have blocked. Users also have the option to unblock people who are on their blocklist.
  • Chat partners appear in app bar. Instead of displaying the application name, the usernames of people who are apart of the conversation, except for oneself, now appear in the app bar.

  • Chat Now! This feature was created to create new conversations between two users randomly. One user can tap this button on the main menu and be matched with anyone who has verified their account. If users are blocked from communicating with each other, a toast pops up remarking, "Unable to create chat.", and the users are evacuated from the chat, sending the user who attempted the chat back to the previous screen. This happens because users still have a slim chance of being paired with that blocked user, but our application will not allow them to communicate until neither user appears on the other user's blocked list.
    • In the future, we'd like to completely remove the chance of users being able to communicate from each other if the user(s) have added one another to their respective block lists.
  • Leaving Chats. If a user holds on a conversation (a list item) listed on the chat list screen, they have the option to remove themselves from the conversation. Their messages and username will still appear to the remaining users in that chat, but this user in particular will not be able to access the conversation anymore.
    • In the future, it would be better to allow users who remain in the conversation to add users by username to the conversation. This would be implemented for group chats and two-person chats.
    • It would also be helpful to the remaining users if some sort of notification appeared in the chat screen saying something like, "(username) has left the conversation."
  • Firebase rules. We've made it so that data is protected from unauthorized access.

Of course, we had to put some ideas from earlier weeks on hold. Unfortunately, users will not be able to find other users based on identities or interests. In the meantime, a toast will appear, saying that the feature has not yet been implemented.

We also do not currently update usernames and passwords if the user does wish to do so. The text fields are there, with censored password entries and confirmation, but the changes do not actually take place. This would definitely be a mandatory change if we work on Chinchilla Chat in the future.

Our non-working Account Settings screen, showing off password censorship.
Because our Android app was heavily inspired by Avery VanOpdorp's idea, there is a strong possibility that we will consider working with Avery on Chinchilla Chat in the future. We'd increase our demographic to either LGBT+ individuals in the Quad Cities, in the U.S., or even worldwide. This would require restructuring account creation (allowing emails that are not assigned by Augustana College), implementing multiple languages, narrowing down search partners (implementing a functioning "Find a Friend" feature, which we have not accomplished at this time), and finally allowing users to change their usernames and passwords. Vecna has created a working Terms of Service and Privacy Policy, but they are not featured within that app itself. When we release the app for public use (AKA not just Team Chinchilla members), it would be very important to require users to examine these items before completing account creation. They will then be aware of what we ask of them and where their information is stored.

So, as the term wraps up, we're ready to show off our mostly-functioning app that, in all honesty, needs work and more features before it can truly take off. However, Chinchilla Chat currently has a lot of cool features and basically functions as we expected it to when we first began the project.

Sunday, May 6, 2018

Weekly Update: Major Breakthroughs With Chats!

BREAKING NEWS

You heard it here first, friends! The Chinchilla Chat team has been working diligently and is finally ready to reveal the news: We have a working chat app!

Chinchilla Chat conversation between three parties: users helic0pter, v, and csc.

Okay so before we get too excited, it's still missing some important functionality, and we need to make sure our code is robust and will withstand the pressures of use in the wild. But in a controlled environment, we were able to accomplish functional chatting. Users' messages are stored and can be retrieved from Firebase (the server side of this operation). Users can even create group chats involving several parties, as demonstrated in the screenshot above. While we had hoped to have this functionality by the end of our first sprint, it turned out to be much more difficult than anticipated; however, we have finally accomplished it, and we are pleased to now share this breakthrough.

The end of the term (and thus our directed work on this project) is coming quickly, and we will not have very much time to implement additional features, but we do have plans for updates we consider necessary, including:
  • Fixing the timestamps to allow for 12-hour time
  • Standardizing username formats
  • Allowing users to search for friends effectively (Currently chats can only be started by entering known usernames, which defeats the purpose of a platform intended for meeting people.)
  • Allowing users to block each other
  • Adding push notifications so users know if they receive a message without having to routinely check all of their chats
  • Some back-end changes to make the app more robust and usable
We would also like to add additional settings and customization features, as time permits. We hope that over the next week we can make great strides to provide the LGBTQ+ student community with a great app!

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!