Giter Site home page Giter Site logo

pear-rails's Introduction

Pear - A Matching Service

Authors

Alex Nakagawa (Github) // Evan Chang (Github) // Kyle Tse (Github) // Makena Fetzer (Github) // Nick Shen (Github)

Idea

This is a web application designed for college students to make deep personal connections with their peers through mutual interests. The idea is similar to the popular social media platform Tinder: a user is introduced to other users through a matching system. Each person is given an option to either pass or match with another user in the database after he or she reviews a profile, which may consist of a profile picture, major, age, and a brief bio. Once a person wishes to match with someone, the other person may choose to reciprocate the match request, at which point a Connection is made, and the two users may begin messaging each other.

Models and Description

There are 5 main models present in the app:

  1. User

The user model has name, age, major, email, and login credentials through the devise gem. Main associations for the user include: a user has many requests and connections. The user is also self-joined to represent the mutual relationship between the user and other users or matches.

  1. Request

Requests have a user_id and requesting_id field and belong to user and match, which is an instance of user.

  1. Messsage

The message model has a body, conversation_id, user_id, and a read field. Messages belong to both a user and a conversation.

  1. Conversation

A conversation has a sender_id and a recipient_id, and belongs to a sender and a recipient. It also has a has many association with messages.

  1. Connection

A connection belongs to a user and a match, which is a self-join of user. A connection is created when a user accepts a request.

Features

  • Implemented a log-in system for Users.

  • Users can Connect using match associations by either passing or requesting a match.

  • User can add profile picture through email.

  • Users can message each other through conversations.

  • Users can view other user profiles

Gems/APIs Added

  • Devise (Gem) - Log-in and authentication

  • jquery-rails (Gem) - for jquery framework

  • turbolinks (Gem) - for easy navigating across web app

  • foundation-rails (Gem) - for sass framework and compass framework (styling on webpage)

  • simple-form (Gem) - for timestamps and dates

  • bootstrap-sass (Gem) - sass and bootstrap framework

  • bootstrap-sass (Gem) - sass and bootstrap framework

  • carrierwave, mini_magick, fog - all for pictures

Division of Labor

  • Alex - Implemented pictures, Completed README write up, debugging, schema
  • Evan - Edit user profiles, interests,
  • Kyle - Implemented messaging, debugging
  • Makena - Match assoications, routing between users and interactions, README, video demo
  • Nick - Styling (with jquery, bootstrap, sass), log-in, edit user profile, debugging

Acknowledgments

  • This project was made by students enrolled in the Ruby on Rails DeCal course at the University of California-Berkeley.
  • Special thanks to the instructors for making this a fun class!

pear-rails's People

Contributors

nickshen avatar pkmnfreak avatar alexnakagawa avatar tsekylekobie avatar makenafetzer avatar

Watchers

James Cloos avatar  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.