Skip to content

a social media application for people with dietary restrictions

Notifications You must be signed in to change notification settings

olinastath/dinr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dinr

Overview

You're vegan. Your best friend has celliac disease and she just started dating a guy who keeps kosher. How are y'all supposed to ever decide on a restaurant to get dinner? That's where Dinr comes in.

Dinr is the millennial response to your friends' increasing dietary restrictions. It is a web app that allows users to look for personalized restaurant recommendations based on their (and their friends'!) dietary restrcitions. Once you create a profile and add all your restrictions, you can add your friends and create events. Then, based on the collective restrictions of the members participating in the event, Dinr will give you restaurant recommendations. So you don't starve to death while endlessly Yelping places.

Data Model

The application will store Users, Events and Restaurants

  • users can have multiple events (by embedding)
  • users can have friends (other users) (via references)
  • each event can have multiple users (members) (via references)
  • each event can have multiple restaurants (via references)

An Example User with Embedded Events:

{
  username: "olina",
  name: "Olina"
  dob: "10-29-1996"
  friends: // an array of references to other Users,
  events: // an array of references to Events the user is part of,
  restrictions: ['kosher']    // an array of dietary restrictions this user has
}

An Example Event:

{
  name: "Dinner 11/3" // name of event
  restrictions: ['kosher', 'vegan'], // an array of dietary restrictions the event has
  users: // an array of references to Users,
  datetime: // Date object
  restaurants: // an array of references to Restaurants that satisfy the dietary restrictions of the Event
}

An Example Restaurant:

{
  name: "Jajaja",
  image: https://s3-media1.fl.yelpcdn.com/bphoto/OgCU9NPFIl8hF_04Zani9w/o.jpg",
  id: "jajaja-new-york",
  rating: 4,
  stars: // html star representation of rating
  price: "$$",
  categories: [ "vegan", "mexican"],
  url: "https://www.yelp.com/biz/jajaja-new-york",
  address: "162 E Broadway New York, NY 10002",
  cuisine: "Vegan, Mexican"
}

Wireframes

/ - home page where you can sign up or log in (starts at log in tab) log in sign up

/edit-profile - page where you edit your profile edit profile

/make-event - page where you can create an event make event

/user-profile/[your_username] - page where you can view your profile (includes your personal information, list of friends, and events) view profile

view events

view friends

/user-profile/[some_username] - page where [some_username] user's profile lives view other person's profile

/event/[name] - page where [name] event lives view event

/event/[name]/restaurants - page where the restaurant recommendations for [name] event live event restaurants

Site map

site map

User Stories or Use Cases

  1. as non-registered user, I can register a new account with the site
  2. as a user, I can log in to the site
  3. as a user, I can fill out my profile and set my dietary restrictions
  4. as a user, I can view my profile, including my friends and events
  5. as a user, I can view other users' profiles and add them as friends
  6. as a user, I can create an event
  7. as a user, I can look at an event I'm in and generate restaurant recommendations for that event

Research Topics

  • (5 points) Integrate user authentication
    • I'm going to be using passport for user authentication
  • (3 points) Use the Yelp Fusion API
    • Using the Yelp Fusion API to get restaurant information

8 points total out of 8 required points

Annotations / References Used

  1. passport.js authentication docs - (add link to source code that was based on this)
  2. Yelp Fusion API client for Node.js - (add link to source code that was based on this)
  3. MongoDB update operators reference
  4. Implementation of passport using mongoose
  5. Using Promises
  6. Hovering dropdown menu
  7. Dealing with authentication errors when logging in

ko-fi