Skip to content

SQL DB version of my Matcha repository. The perfect dating application to find your match ;)

Notifications You must be signed in to change notification settings

jadonhansen/MatchaSQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matcha

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!

Subject File

Grade Achieved: 100 / 125 [No Bonus marks]

Technologies:

  • MAMP
  • MySQL
  • HTML
  • CSS
  • NodeJS
  • JavaScript
  • AJAX
  • PUG

Requirements:

  • NodeJS & npm
  • MAMP, for the MySQL server
  • Most other Node requirements can be found in the package.json file

Developer Setup:

  1. Install MAMP
  2. Run the MAMP server, no configuration necessary, we are simply using the pre-configured SQL server.
  3. Clone this repository to a place of your choosing.
  4. Configure an .env file in the project root directory:
    • port=3306
    • secret=128936GS71gd92JKJAF3701237
    • path=absolute/path/to/MatchaSQL/uploads/ < Ensure this path is correct
    • TOKEN= < IPInfo token for IP tracking (this will require a free IPInfo account)
    • smtp= < Gmail account for sending emails
    • password= < Gmail account password
  5. In the project root directory, run npm install, followed by npm start
  6. Navigate to http://localhost:3306 in your browser, create and verify your account, and get matching!

Architecture:

This project follows the MVC design pattern.

  1. 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
  2. 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
  3. 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
  4. Static Assets:

    • Various static assets (CSS, Images, Fonts) used around the site.
    • See public/*

Testing:

The Marking Sheet will be used as a testing outline. A more simplified Outline and Expected Outcomes are listed below.

Outline:

  1. Launch Web Server
  2. Create Account
  3. Verify Account & Login
  4. Edit Profile
  5. View Suggestions
  6. Search / Filter
  7. Geolocation
  8. Popularity Rating
  9. Notifications
  10. View another Profile
  11. Like / Unlike other users
  12. Block users
  13. Live Messaging

Expected Outcomes:

  1. The backend server should start up and connect to the SQL database
  2. You should be able to create an account
  3. You should be able to verify the account via the received email, and then login
  4. You should be able to edit a number of fields on your profile
  5. You should be able to view other suggested profiles that match your preferences
  6. You should be able to search and filter through a list of other profiles
  7. Geolocation should be a feature.
  8. Popularity ratings should be displayed on profiles
  9. You should receive notifications when certain events happen
  10. You should be able to view other profiles
  11. You should be able to Like or Unlike other users
  12. You should be able to block another user
  13. You should be able to live chat with another user once you have both liked one another

Error Codes (for developer use):

  • 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.

About

SQL DB version of my Matcha repository. The perfect dating application to find your match ;)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published