Le Chat Meow is a Ruby-On-Rails, ActionCable touting, real-time chat application targeted at agile development teams. This project presented many interesting challenges, including getting ActionCable, a new Rails v5 feature, to implement websockets and render chat windows in real time. Fun stuff!
Originally built for agile software development teams, I reskinned this chat app from it's origin incaration, called WeHuddle, into a chat application that works specifically for cat owners who want to talk to other cat owners, while pretending to be their cats.
Clone down!
...or visit the live demo
You need Ruby (which comes default with Mac)!
You also need to install imagemagick (v. < 7.0)
$ brew install imagemagick
Once you've cloned down the repo and installed imagemagick, in terminal...
- Have bundler install gems/dependencies
$ bundle install
- Create a SQL database
$ rails db:create
- Migrate database up
$ rails db:migrate
- Run your rails server!
$ rails s
Navigate to localhost:3000 in your browswer to begin!
While in terminal, 'cd' into the root directory and run
$ rspec
Currently deployed to Heroku @ wehuddle.herokuapp.com
- RubyOnRails - Our framework
- Bundler - Dependency management
- Carrierwave - Used to upload user avatars
- Devise - Handles authentication
- Rspec Rails - Handles testing
We use GitHub for versioning. For our commit history, see the repo.
Here there be 'frames!
Our 'planning' GoogleDoc is available here.
Homepage: in the center of the page, user can select either the create an account or login button to start using We Huddle
- If the user selects "Sign Up", user creates an account
- User is prompted to enter information: first name, last name, username, email and password
- User submits the information to sign up
- User is directed to Edit Profile page
- User sees profile page with basic information filled out (first name, last name, email). On the bottom of the edit profile there is a small link to change the password and to delete the user profile
- User proceeds to edit their profile
User can type in to edit the following fields:
-
First name
-
Last name
-
Username
-
Email
-
Profile Image
-
Biography
-
Phone Number
-
After user submits the information, user is redirected to the Profile page, with changes saved.
If user selects Change Password
- User goes to an edit form with change password
- User can save new password
- User gets redirected to the user Profile page
If user selects Delete Profile
-
User gets a prompt - Are you sure?
-
If user confirms Delete, user gets redirected to the homepage and a notification pops up "Thank you for using We Huddle"
-
User can select chat icon in the navbar to redirect to the chat page index
-
User selects login
-
User logins with username or email, and password
-
User is redirected to the chat page index and can see two columns:
-
Left column: List of chatrooms. left-bottom: Create new chatroom button
-
Right column: empty if no chatroom selected. If chatroom selected, recent messages
User can see the chat icon and profile icon in the navbar (top right).
- Chat icon refreshes the chat page index
- Profile icon redirects user to the Profile page
- User can select a chatroom
- Right column will render most recent messages to the view. User can also see a people icon with a number count representing number of users active in the chatroom
- User can see a form on the bottom to type and send a message to the chatroom
- If the user sends a message
- The user will see the message in the chat window in real-time
- Other users will see the message in real-time if they are view the chat window
- If user selects the people icon in the right column, they can see the list of active users - profile image thumbnails and names.
- User can sign out
- User is redirected to homepage
-
First things first, we need to get thumbnails to show up dynamically while chatting. The problem seems to lie in the asset pipeline and how it fingerprints the path, we just haven't quite worked it out.
-
More stuff!
- Yan Yin Choy - Developer - GitHub
- Thelma Boamah - Developer - GitHub
- Will Kaspar - Developer - GitHub
- Luke Swanson - UX/UI Designer - LinkedIn
See also the list of contributors who participated in this project.
Why does MIT license all our software, anyway?
-
Communication is hard
-
Nathan and Michelle are great
-
We all miss Sherri
-
Logan's buying!