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!
- 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:
https://dbdiagram.io/d/64a2f12702bd1c4a5e6ce584
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 |
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. |
Open two terminals and input commands below:
#for backend
$ cd server
$ pipenv install
$ pipenv shell
# for frontend
$ cd client
$ npm install
$ npm run dev
-
Google login integration
-
Social media integration
-
Location services
-
Filterable and searchable tags