Giter Club home page Giter Club logo

uncheezd's Introduction

UNCHEEZD

Discover your new favorite cheese at UNCHEEZD Live

Overview

This repository contains the application for UNCHEEZD, a site inspired by UNTAPPD. Instead of rating beers, users can rate their favorite cheeses. They can browse cheeses and see which cheeses other people are eating. Using this site, users not only get a chance to share their opinions and thoughts on the cheeses that they consume, but they can also discover other cheeses to try.

Technologies Used

The backend of the project was built using Ruby on Rails, with a PostgreSQL database. AJAX and JSON were used to fetch data as objects to send to the frontend. Frontend rendering was created using Javascript, React and Redux. Styling was done using SASS.

Features

Authentication

Single layer authentication was created from scratch with the BCrypt gem and SecureRandom hashing. Right now, users are able to either create an account and log in, or log in through a guest account. Errors are rendered if there are sign in or log in issues.

Cheese Board

Once logged in, users are able to browse cheeses, add a cheese, remove cheeses, and edit cheeses. They are also able to go to individual cheese pages and see cheese reviews.

Cheese Reviews

If they try a particular cheese and have a desire to rate it, they have the ability to do that as well. Cheeses can be rated on a 5-cheese scale, facilitated using a react-rating package with custom cheese icons (in the place of stars).

Database

The schema for the database may be found in the UNCHEEZD wiki.

Highlights

It was really fun implementing novel features, such as the cheese/star ratings and making modal forms. I think it makes the site more interesting and customized.

<Rating
  className="star-rating"
  emptySymbol={<img src="http://i68.tinypic.com/21l06bn.png"
    className="star" id="emptyCheese"/>}
  fullSymbol={<img src="http://i68.tinypic.com/15czlvt.png"
    className="star" id="fullCheese"/>}
  onChange={(rating) => this.setState({rating: rating})}
  initialRating={this.state.rating}
  fractions={2}
/>

Future Directions

  1. Implement search by cheese, cheese type, or cheese brand
  2. Review Feed - users can see what recent cheese reviews have been made
  3. User profiles - users can see their own recent activity and that of other users
  4. Friendships - users can follow fellow cheese eaters
  5. Tags - Cheeses will have flavor tags, so that they can be searched based on flavors and so that users can choose from a uniform set of approved flavors to develop a more standardized cheese description for each cheese
  6. Badges - Users can earn badges based on the cheeses they've tried.
  7. Improve overall look of the site!
  8. Better security - users will only be able to edit and add cheeses based on moderator approval, and they will only be able to delete cheeses and reviews that they have authored. Thank you for reading! I hope you discover a new cheese :)

uncheezd's People

Contributors

polkadotazn avatar

Stargazers

Hugo Zul avatar Patrick Chao avatar Anastassia Bobokalonova avatar Zion Wen avatar

Watchers

James Cloos avatar

uncheezd's Issues

Cheese CRUD

  • cheese index
  • cheese show page
  • create cheese
  • research cheeses
  • seed cheese data
  • update cheese
  • delete cheeses
  • cheese styling

User Profile

  • shows recent cheese review activity
  • shows user information
  • styling
  • ability to upload user profile pic

Production Readme

  • Overview
  • Technologies used
  • Features
  • Pictures and styling
  • Future directions

New account creation, login, guest/demo login

  • Backend: DB, model, controller, views
  • Redux Loop: ajax, actions, reducer
  • Presentational Components
  • Demo User Added
  • Styling
  • Smooth, bug free navigation
    • Login errors clears when switching from login form to sign up form (and vice-versa)
  • Adequate and appropriate seeds

Cheese Reviews

  • Add cheese reviews
  • Add ratings
  • Show reviews and ratings on cheese show page
  • Show username in show review
  • Cheese review styling

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.