GithubHelp home page GithubHelp logo

chatwithfriend's Introduction

Homework 2 - chatwithfriend

chatwithfriend is a Ruby on Rails blog application that allows users to send messages to each other that can only be read once.

Submitted by: Nguyen Van Trung

Time spent: 16 hours

URL: https://powerful-garden-27389.herokuapp.com/

User Stories

The following required functionality is complete:

  • User can sign up by providing their email, password, and name.
  • User can login using an email and password.
  • After logging in, the user is taken to a page that has a list of incoming messages, sorted in descending chronological order (newest messages at top), a "new message" link, an "add friends" link, and a "sent messages" link.
  • Unread messages should be bold or something similar in the list of messages.
  • Clicking the "add friends" link takes the user to a page with all users listed, with a link to "add user to friends list".
  • Clicking on "new message" takes the user to a page where they can write a new mesasge. The recipient field should be a dropdown, where the options are names from the user's friends.
  • Clicking on "sent messages" takes the user to a page listing messages they have sent. Each message should display at what time it was read by the recipient, or "unread". The user cannot read the contents of the messages.
  • User can read a message's content only once. Once the message has been read, the user will see a page indicating the message has already been read.
  • User can only read messages where they are the recipient.

The following optional functionality is complete:

  • User can attach an image.
  • User can have multiple recipients on one message.
  • User can log in with Facebook.
  • User A can "block" User B. If User A blocks User B, they will not see messages from User B. User B will not know they have been blocked.
  • User can remove friends from their friends list.
  • User can unblock friends from their block list.
  • Implement Infinite Scroll. Hint: you can use the kaminari gem and jquery-infinite-pages gem.
  • User gets an email when they receive a message, with a link to view the message.
  • User gets an email when a message they have sent is read with the time at which the message was read.
  • User can send a message to the email address of a non-registered user. The recipient will receive an email with a link to sign up for the service, and after creating an account, will be able to view the sent message.

The following additional features are implemented:

  • (List anything else that you can get done to improve the app functionality!)

Video Walkthrough

Here's a walkthrough of implemented user stories:

Video Walkthrough

GIF created with LiceCap.

Notes

Describe any challenges encountered while building the app.

License

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

chatwithfriend's People

Contributors

darkrai0101 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.