Python Django Free Dating System

A milestone project displaying capabilities in HTML, CSS, Javascript, Python, the Django framework.
The project is a website which allows users to create accounts, edit profiles and search and engage with other users.
The project makes use of Bootstrap framework for front end styling and functionality.

The project makes use of a verification system to verify or reject new profiles and profile images. A user account with sufficient permission is required to access the verification system. The following user can be used for this:


Front demo

https://dating-app-mvd.herokuapp.com/

Username: verification
Password: veripass

Admin Demo

https://dating-app-mvd.herokuapp.com/admin/login/?next=/admin/

The intended users are as follows:

  • The main intended user is one who is looking to meet other individuals - primarily for dating
    • The site messages the 'dating' aspect of the site frequently and offers a range of functionality (explained below) to facilitate this
  • Users looking to express their personal information to other users
    • Users are able to create profiles, not only displaying a range of preselected personal criteria but also a custom bio
  • Users who are looking to send 'flirtatious' notifications to users but not specifically have conversations
    • The site makes use of a 'winks' feature which allows users to engage with other individuals without having to send text messages
  • Users who are looking to have conversations with other users
    • The site makes use of a messaging functionality which allows users to send text messages to one another. This requires a premium subscription (explained below)
  • Users looking to search through many members quickly - most likely to find a potential relationship partner
    • The site makes use of a 'quick match' feature, which allows users to view many profiles quickly, swiping to indicate an intent to engage with the user or not
  • Users looking to search through many members quickly based on a range of criteria
    • All preselected profile aspects can be used in search filters, helping users to find members based on a range of criteria - most likely to match ideal romantic traits
  • Users looking to search through members based on their sexuality preferences
    • In order to not display unwanted romantic interests to users, all members shown to a user match their gender preferences (and the same for the displayed user). A homosexual male user won't be shown to a female user. A heterosexual female user won't see a female user.
  • Users who wish to see which profiles have viewed them
    • Views are tracked allowing users to see which members have viewed them - a desired interaction for a dating site user
  • Users who wish to see which profiles have 'winked' at them - indicating a subtle romantic interest intent
    • 'Winks' are tracked allowing users to see which members have 'winked' at them - a desired interaction for a dating site user
  • Users who wish to see which profiles have 'messaged' them
    • 'Messages' are tracked allowing users to see which members have 'messaged' them - a desired interaction for a dating site user
  • Users who want to find members 'serious' about dating
    • The subscriptions required to engage with users (excluding winks) helps to filter out users not 'serious' about dating online

Wireframes can be found here

The following alterations were made after the mock-up phase:

  • 1 profile shown per line on mobile. 4 profiles shown per line on desktop
  • Change of icons used on menu
  • Change of footer shape for mobile

Features

Existing Features

Creating a User

  • Users are able to enter their username, email and password to create an account
  • Usernames are unique, stopping users from creating accounts with the same details
  • Using Django's authentication system, user's remain logged after leaving the site

Creating a profile

  • On creating an account, a profile is created for each user. They are directed to a profile edit page on registering
  • Users are able to a custom bio to their profile
  • Users are able to select options on a number of predefined attributes for their profile
  • Users are able to select the location they reside, assisted from Google Maps API
  • Users are able to add a number of profile photos to their profile
  • On submitting, users are informed they have been sent to the verification team

Verification

  • Users are marked as 'to be approved' on profile creation/update. This limits what content is displayed on their member profile
  • Members of the verification team can approve or reject profiles using the above instructions
  • Members of the verification team only have sufficient permissions to make verification changes
  • Users are emailed with the status of their verification

Home

  • The logged in homepage offers a snapshot of users to encourage interaction quickly. These include most active, most recent and closest profiles (using the location information submitted on profile creation)
  • The quick swipe feature allows users to swipe in a specific direction to either engage with (wink) or reject profiles
  • Interaction icons (winks and messaging) are below each profile, allowing the user to quickly engage with users

Subscribe

  • A subscribe paywall limits use of the view and messaging functionality. Users are able to use the subscribe page to select and subscribe to different payment plans

Views

  • When viewing another profile, a view record is created (if no previous view records are unseen)
  • Users can see a list of all members that have viewed them on the view page, with new view records being highlighted accordingly

Winks

  • Users are able to create a wink record (as long as no previous wink records are unseen) by clicking the wink icon on a member's profile or profile card
  • Users can see a list of all members that have winked at them on the wink page, with new wink records being highlighted accordingly

Messages

  • Users are able to create a conversation record between themselves and another user, by sending a first message to them on the member's profile or profile card
  • Messaging allows for custom text to be shown to another user
  • The chat home displays all conversation a user currently has, with conversations with new messages (not sent by them) highlighted accordingly
  • The specific conversation page displays all messages between themselves and another user, with new messages (not sent by them) highlighted accordingly
  • A new message alert is displayed when a user receives a message whilst in a conversation with that member