Skip to content

imkarin/datingapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

wavylogo

Wavy Dating App

A dating app for movie and show lovers.

Welcome to the Wavy repo! This repository contains the files for a team project for Block Tech 2020, for the bachelor Communication and Multimedia Amsterdam.

Wavy is a dating app for anyone who enjoys spending their free time watching movies and shows. After making an account, you can tell the dating app about your favourite movies and series, and connect with people with similar cinematic tastes.

This project is made by Karin Meijvogel and Jelmer Overeem, and is partially based on individual research and features that we've made before joining forces. To read more about this, we'd like to refer you to Karin's and Jelmer's indivual wiki's as well. You can read about the team progress and research in this repository's wiki.

Table of contents πŸ“œ

Installation guide πŸ–±οΈ

Requirements

To run this project, you'll need Node and Git installed. Also, any text editor and MongoDB compass are useful, if you want to look into the code and see the database structure for yourself.

Install

If you just want to try the app for yourself, you can visit it on wavy-dating.herokuapp.com. You can also clone the repository to your desired location. Then navigate to it:

git clone https://github.com/KarinMeijvogel/datingapp.git
cd bloktech

Once you're in the directory, install the required node modules:

npm install

Finally, start the server:

npm run start

To run the app in dev mode, run:

nodemon

You can now go to http://localhost:3000/ in your browser and view the app. Create an account on the /register page, and go to the /login page to switch between users. Enjoy!

Database structure πŸ“‚

To understand the code better, it's useful to know how the database is structured. Our MongoDB database has one collection called "users". Every object in this collection stands for a user in the app, with its own properties:

  • string firstName
  • string lastName
  • number age
  • string gender
  • string description
  • array preferences
    • array gender
    • number minAge
  • string location
  • array movies
  • array hasLiked (with liked people's IDs)
  • array hasDisliked (with disliked people's IDs)
  • object messages

App features ✨

We've subdivided the app into several features:

Registration

Users can create an account on the registration page. They fill in their name, e-mail, age, preferences and profile picture. Passwords get stored in the database as hashes, using Argon 2.


Login

Users can login using their e-mail and password. Verification goes through Argon 2.


Profile page

On their profile page, the user can edit their profile picture and add/delete movies to his account.


Discover page

On the discover page, the user sees people who meet his preferences and have similar favourite movies on their profiles.


Movie filter

Based on the user's favourite movies and series, the app shows them people with the same movies/series on the discover page.


Age and gender filter

The user can set a preferred gender and minimum age for the people on the discover page, to find his ideal date.


Matching

When the user sees someone who interests him, they can press the like button. The other person appears on the 'liked' page: if the other user hasn't liked our user yet, in the 'pending' section. If it's a mutual like, in the 'matches' section.

NPM packages πŸ“¦

The dependencies we've used to build this project are:

And dev dependencies:

License πŸ“„

This project is made and shared under the MIT license. For more details, read the license.md.

Sources πŸ”Ž

Code conventions

GitHub flow

Topic: Password hashing

Topic: External API's

Topic: Compression

Topic: Deployment

About

A dating app for movie fans, based on NodeJS (Express), MongoDB and Express. Team project for cmda-tech, 2020.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published