Matcha is a recreation of the popular dating app, Tinder, except with Matcha we find your ideal match with a user filtering system using your preferences that are fully customizable on the fly. You'll find our built-in chat feature quite refreshing to use with your match!
- MAMP
- MySQL
- HTML
- CSS
- NodeJS
- JavaScript
- AJAX
- PUG
- NodeJS & npm
- MAMP, for the MySQL server
- Most other Node requirements can be found in the
package.json
file
- Install MAMP
- Run the MAMP server, no configuration necessary, we are simply using the pre-configured SQL server.
- Clone this repository to a place of your choosing.
- Configure an
.env
file in the project root directory:port=3306
secret=128936GS71gd92JKJAF3701237
path=absolute/path/to/MatchaSQL/uploads/
< Ensure this path is correctTOKEN=
< IPInfo token for IP tracking (this will require a free IPInfo account)smtp=
< Gmail account for sending emailspassword=
< Gmail account password
- In the project root directory, run
npm install
, followed bynpm start
- Navigate to
http://localhost:3306
in your browser, create and verify your account, and get matching!
This project follows the MVC design pattern.
-
Model Layer:
- Consist of the SQL database where all user data is stored.
- Any functions that assist in creation of the database.
- Certain functions can be called to update the View Layer.
- See
database/*.js
-
View Layer:
- Any PUG template files.
- Serves as the user interface, with interactive elements.
- Can be updated with 'fresh' information from the DB if anything is updated.
- See
views/*.pug
-
Controller Layer:
- Any JavaScript files that contain functions used in user input.
- Functions capable of manipulating the Model Layer depending on user input.
- See
pages/*.js
-
Static Assets:
- Various static assets (CSS, Images, Fonts) used around the site.
- See
public/*
The Marking Sheet will be used as a testing outline. A more simplified Outline and Expected Outcomes are listed below.
- Launch Web Server
- Create Account
- Verify Account & Login
- Edit Profile
- View Suggestions
- Search / Filter
- Geolocation
- Popularity Rating
- Notifications
- View another Profile
- Like / Unlike other users
- Block users
- Live Messaging
- The backend server should start up and connect to the SQL database
- You should be able to create an account
- You should be able to verify the account via the received email, and then login
- You should be able to edit a number of fields on your profile
- You should be able to view other suggested profiles that match your preferences
- You should be able to search and filter through a list of other profiles
- Geolocation should be a feature.
- Popularity ratings should be displayed on profiles
- You should receive notifications when certain events happen
- You should be able to view other profiles
- You should be able to Like or Unlike other users
- You should be able to block another user
- You should be able to live chat with another user once you have both liked one another
- 1 - Please make sure your login details are correct. Try again!
- 2 - Access Denied! Please login first.
- 3 - Either we are having server downtime or something went wrong client side :/
- 4 - Please check your email for the link we have sent you.
- 5 - Please make sure you fill out all inputs and use a unique email address and username.
- 6 - Please make sure your account has been verified by using the link sent to your email.
- 7 - Please use the link in the email sent to you to verify your account.
- 8 - Please make sure both passwords are the same.
- 9 - This email address is already registered with a Matcha account. (updating profile)
- 10 - This username is already registered with a Matcha account. (updating profile)
- 11 - Please make sure you fill out the email input.
- 13 - Your password must be at least 8 characters long and must not contain spaces.
- 14 - Either your account has not been verified or we cannot find your email address related to an existing account.