Candate is a dating webapp to connect you with the most compatible singles using interest, age, location, and preferred gender filters.
CanDate finds potential matches by personalizing the user's home page to show profiles based on the user's unique preferences and interests. At sign up, the user selects his or her interests and personal information, for CanDate to find user profiles that are most compatible with the user. Each profile is given a match percentage to indicate how well their profiles match.
This project was built using the PERN stack (PostgreSQL, Express, React, NodeJS) with Material-UI library, React Bootstrap library, and Socket.io. For a full list of dependencies, please view the dependencies section.
Users are asked to select tags associated with their interests, so CanDate can show their most compatible profiles.
Users will see their most relevant profiles, based on their location, age, gender, and interest preferences, as soon as they login.
Each profile has a match percentage that indicates how well the profile's interests matches that of the user's.
Not happy with your current results? The filter feature allows you to add, remove, or clear filters to update your profiles.
Favorite a profile to view in the Favorite toggle or block a profile, so you'll never see them in your results again.
Initiate and receive conversations from other users with our message feature.
You should have two terminals open to set up local database and start the react app.
-
on your vagrant machine and in candate api folder run:
psql -U vagrant -d template1
-
Run the following SQL commands to create the necessary objects in the DB:
CREATE ROLE labber WITH LOGIN password 'labber';
CREATE DATABASE candate OWNER labber;
-
Create the
.env
by using.env.example
as a reference:cp .env.example .env
-
Update the .env file with your correct local information
- username:
labber
- password:
labber
- database:
candate
-
Install dependencies:
npm i
-
Reset database:
npm run db:reset
- Check the db folder to see what gets created and seeded in the SDB
- Run the server:
npm run local
- Note: nodemon is used, so you should not have to restart your server
- In the project directory, run
npm start
to open up the app in development mode. The command should automatically open up http://localhost:3000 to view in the browser.
- Node 10.x or above
- Npm 5.x or above
- PG 6.x
- Express 4.17 or above
- Socket.io 2.4 or above
- React 17.0 or above
- React-dom 17.0 or above
- React-router-dom 5.2 or above
- React-bootstrap 1.6.1 or above
- Socket.io-client 4.1.2 or above
- Timeago-react 3.0.2 or above
- Web-vitals 1.1.2 or above
- Material-UI library 4.11 or above
- Bcryptjs 2.4.3 or above
- Axios 0.21.1 or above
- Framer-motion 4.1.17 or above
- Node-sass 4.14 or above