Skip to content

Instantly share code, notes, and snippets.

@flstudio4
Created December 5, 2023 19:44
Show Gist options
  • Save flstudio4/c39641a318a02354330f1b76f17ad6ec to your computer and use it in GitHub Desktop.
Save flstudio4/c39641a318a02354330f1b76f17ad6ec to your computer and use it in GitHub Desktop.
Singles Functional Specification

Singles MVP Specification

About

Singles is a modern and user-friendly dating platform built with Ruby on Rails. It offers a range of features to help users connect, build meaningful relationships, and find their ideal partner.

Pain Point

The main pain point of dating apps is the "swiping game", where it's uncertain if the person is real or active on the app. My solution offers the ability to direct message any user. Regular users can create 10 free chats a day, while premium users get unlimited messages. This approach aims to foster real communication without games.

User Stories

  • Messaging: As a user, I want to be able to message other people, so that I will entertain myself.

  • Favorites: As a user, I want to be able to add people to favorites, so that I can keep track of people I like to talk to.

  • Blocking: As a user, I want to be able to block people, so that annoying people will not bother me anymore.

  • Search: As a user, I want to be able to search people by parameters, so that I can narrow down the people that I'm interested in.

  • Online Status: As a user, I want to be able to see people who are online, so that I will know they are actually active on the website.

  • Full Profiles: As a user, I want to be able to see full profiles with all the info.

  • Profile Creation: As a user, I want to be able to create a profile, so I will be able to persist my data and be found by other registered users.

Domain Model

Users

  • id
  • email
  • password
  • name
  • username
  • avatar
  • dob
  • country
  • state
  • city
  • bio
  • gender
  • last_seen_at
  • confirmation_sent_at
  • confirmed_at
  • confirmation_token
  • unconfirmed_email
  • created_at
  • updated_at

Chats

  • id
  • sender_id
  • receiver_id
  • last_message_at
  • created_at
  • updated_at

Messages

  • id
  • chat_id
  • author_id
  • content
  • created_at
  • updated_at

Favorite Users

  • id
  • liking_user_id
  • liked_user_id
  • created_at
  • updated_at

Blocked Users

  • id
  • blocker_id
  • blocked_id
  • created_at
  • updated_at
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment