Skip to content

sarahadean/MamaMatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

MamaMatch

MamaMatch is an app for mothers at any stage to connect with other moms in their area. Being a mom is hard enough, finding a your village shouldn't be. Find your unicorn mom-friend!

  • Find potential mom-friends in your area
  • 'Favorite' or 'Dislike' other user profiles to create a potential friendship. Users will receive 'requests' from other Users who favorite their profile.
  • Confirm or Decline friend requests
  • Once a friendship is confirmed, User can chat with their new mom friend!

Features

  • Customizable profile. When logged in - user's profile picture displays in top corner.
  • Returning Users will be directed to home page with Users they have not interacted with.
  • User can view list of potential friends who have positively interacted with user's profile. User can then 'confirm' friendship or decline
  • User can view list of confirmed friends.
  • User can send and receive messages.
  • Material UI styling
  • Self-Referential many-to-many relationship
  • Full CRUD capabilities

Tech Stack:

My Skills

Schema:

https://dbdiagram.io/d/64a2f12702bd1c4a5e6ce584

Wireframe:

https://www.figma.com/file/MbtQ6o1dWaNJ3pyvm4vRBV/MomFriendFinder?type=whiteboard&node-id=0%3A1&t=4OYjARU12DIrnJ0k-1

API Routes:

Route Method Body Response Explanation
/signup POST form or json {User schema}, 201 Creates a new user when they signup.
/login POST form or json {User schema}, 200 Logs user into app.
/logout GET Logs user out
/authorize_session GET Keeps user logged in
/FilteredUsers/int:id GET none [{User schema}], 200 Displays all potential friends. Filters out users that are already in a friendship with current user.
/current_user/int:id GET {User schema}, 200 Retrieve's current user's information
PATCH {User schema}, 200 Updates current user's information
DELETE none {}, 204 Deletes user's account
/user_friendships POST form or json {Friendship Schema}, 201 User adds friend/creates friendship Default status = PENDING until potential friend responds
/user_friendships// GET none [{User Schema},], 200 Displays user info for friendships with status = 'matched' and 'pending'
/user_friendships/int:id GET form or json [{Friendship Schema},], 200 Retrieves user's friendships with messages attached
/friendship/int:id/int:friend_id PATCH form or json {Friendship Schema}, 200 Updates friendship status to CONFIRMED or HIDDEN
DELETE form or json {}, 204 Delete's friendship
/messages/int:id/int:friend_id GET form or json [{Messages schema}], 200 Get's all messages for one friendship
POST form or json {Messages schema}, 201 Creates new message
DELETE none {}, 204 Delete's message

Component Tree:

Screenshot 2023-07-04 at 9 30 09 PM

Client-side Routes:

Route Component Description
/ WelcomePage.jsx Welcome page for users to signup or login
/signup SignupForm.jsx Contains form to signup and gain access to app
/login LoginForm.jsx Login page
/home Home.jsx Shows list of potential friend matches for user to view, filter
/interested PendingList.jsx Shows list of users who are interested in being user's friend (User has not matched with them yet) - filtered by status
/friends FriendsList.jsx Shows list of user's friends they have been matched with - filtered by status
/messages/user Conversation.jsx Shows conversation between user and another user
/profile Profile.jsx Shows user's profile information.

Instructions

Open two terminals and input commands below:

#for backend
$ cd server
$ pipenv install
$ pipenv shell
# for frontend
$ cd client
$ npm install
$ npm run dev

Trello Board

Screenshot 2023-07-04 at 10 26 47 PM

Future Updates:

  • Google login integration

  • Social media integration

  • Location services

  • Filterable and searchable tags

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published