Secure Dating App for Californians
Secure Dating App for Californians
By:
Lina Deen
James Doskocil
Fall 2020
2
By:
The purpose of this project is to build a dating web application. The goal for this project
is to create a dating website that will focus on the security of its users, by installing safeguards
against scammers, and other users who would seek to use the app for nefarious purposes. This
profiles, since the majority of scammers are from distant locations (predominantly Africa and
Asia). By restricting the location and tying it to the google geolocation of the user, accounts
The general users of dating apps/sites are people of ages 18+, and this app will also serve
that demographic. This project will seek to limit the demographic scope to areas local to the team
members, that is Los Angeles and Orange counties in California. This may be expanded to more
of California if there is sufficient interest. The outcome of this project will lay the foundations
for an eventual app. While the scope of this project is somewhat limited, the goal is to build the
foundations of what can eventually become a fully fleshed out mobile app.
3
TABLE OF CONTENTS
Evidence of Need.…….………………………………………………………………….………...7
Project Feasibility……………………………………………………………………….…………8
Functional Decomposition…………………………………………………………….…………...9
Final Deliverables…………………………………………………………….....………………..10
Approach/Methodology……………………………………………………………….………….11
Legal Considerations……………………………………………………………...…….………..12
Ethical Considerations………………………………………………………………….………...13
Timeline/Budget………………………………………………………..….……………………..14
Usability Testing/Evaluation…………………………………………………………...………...16
Final Implementation……………………………………………………………………………..17
Conclusion………………………………………………………………………………………..24
REFERENCES…………………………………………………………………………………………….26
APPENDICES…………………………………………………………………………...………………..27
4
PART I
In the past few years, online dating has become a popular trend. Modern life is very busy
and that has resulted in single people having almost no time to go out and meet other singles, but
dating apps have been an innovation to solve that problem. Many emerged throughout the past
few years, and they are diverse with a niche for almost everyone. Thus, for older or younger men
and women dating apps gave them the opportunities to do it all at the comfort of their home.
Nevertheless, without going through the uncomfortable meetings not knowing if they are going
to like each other, subscribe then post pictures and match with others that share the same
interests as dereferences. Moreover, they start chatting and exchange phone numbers if they feel
The name of the project is Date and Be Safe. It is a dating app that implements many
security features to prevent fake accounts, catfishers, and scammers. There are no clients for this
project at the moment, as it was a side project that we seek to bring to fruition. For this project
we will create a dating site web application, with the hope that eventually it can be made into a
full-fledged app.
Digital dating has been a popular trend in the past few years. However, it can be
dangerous since most dating apps implement very little or no security features to identify the
user, and when they do it is often not accurate and or enforced. For example, anyone can create a
profile by using fake pictures they stole from someone's online social media, and can create an
account using a fake name, date of birth, and address. This project is similar to the many dating
5
apps used today in which singles meet, match, and connect using bios and pictures. However, it
will be different in the sense of security and privacy, the flexibility of choice, and the
subscriptions prices. This project will set itself apart by placing a high emphasis on security, by
using google geolocation to lock users into specific locations. This will eliminate or heavily
mitigate scammers ability to fake the location they are from. The web app will be designed for
One of the major issues in dating applications is that of scammers and cat fishers. Since
the typical users for dating apps are those looking for love, many are open and vulnerable to
emotional manipulation. As a result, many vulnerable people end up falling into the trap of
scammers, fooled in the name of love. They are often emotionally manipulated and promised
endless love before they start getting extorted for money, or in extreme cases scammers will set
up fake meetings in an attempt at kidnapping the user. Many who fall for these scams end up
bankrupt, losing all their life savings, or ending up in debt. In some cases, individuals suffer
severe stress and end up taking their own life. Unfortunately, many of the larger dating apps use
automated reporting systems as their method of weeding out scammers and other mal-intentioned
users, and this can lead to a slow or even ineffective method of removing the harmful users.
The solution this project will attempt to implement is a security-based dating web app.
Many security features at the same time will make it much more difficult, if not impossible, for
imposters to breach. Since most dating apps are owned and run by larger corporations, they are
more invested in the financial benefits than the user “success”. As a result, scammers are not
6
dealt with quickly as they are additional revenue for the companies. This project will aim to
avoid this trap by setting security as the focal point of its appeal. The security features this
First, signing in to the dating website will be through a phone number, not email or
Facebook. The phone number cannot be a VOIP it has to be from a local carrier, which will have
immediate impact since many scammers use VOIP to fake account locations etc. Second, will be
capturing the google geolocation and not giving users the ability to choose their location. This
will allow users to see other users (that is potential dating matches) actual true location. Many
scammers will attempt to create fake accounts from other countries while saying they are
somewhere local. This locking of location will seek to remove that possibility. If there is time, a
third security method will be to verify users by using a software, such as google face recognition,
to verify if the users profile picture exists online, and if so if it matches the name of the user.
Goals:
• Create a unique dating app/website that will stand out among others in the industry.
• Focus on user security, and create an environment where users feel safe.
and mitigated.
Objectives:
• Implement geolocation based security, in order to keep users defined to an area based on
• Implement phone number requirements for profile creation in order to avoid VOIP
scammers.
• Implement the use of profile pictures that are taken upon profile creation.
• Use free hosting services until a stronger financial situation can be achieved.
Since this project was initially a side hobby, the only stakeholders in the project are the
current team members. There are not currently any investors or any other third parties with any
interests in the project. Since this project will create a dating web application, the community it
serves will be those ages 18+ who are interested in dating. In an effort to keep the scope of this
project within a manageable timeframe, the initial community will be limited to Los Angeles and
Evidence of Need
Since many scammers and catfishers use fake profiles to achieve their nefarious goals, it
is imperative that any dating site that aims to stop them implement features designed specifically
to counter those actions. First, scammers are often from various third world countries. On many
major apps they simply are able to set their location to anywhere in the world, or if they aren’t,
they use VOIP to counteract that. This project will use the google geolocation of the device
attempting to login in order to lock users into their location. Additionally, it will use unique
phone numbers as a requirement for login, allowing for the negation of VOIP. With these kinds
8
of security features, this project will demonstrate its strength in security in an industry (that is
Project Feasibility
Bumble, Tinder, Matchmaker, Coffee Meets Bagels, and many more names all dating
apps and websites as the business press. Com article use of online dating websites and apps
stated dating apps were once viewed as stigma is now widely accepted to be a good way to meet
people (Smith and Anderson,2014) were and according to the same article 87 percent of single
America males and 83 percent of single American females view online dating as socially
acceptable (Statistics and facts, 2015) and the growth in popularity of online dating is due to the
advance technology. Dating apps are now almost the only way people meet because they are
easy. You do it at the comfort of your own home and it is easy to move away if you’re not
This project will stand out because first and foremost it will place a strong emphasis on
security measures, in an effort to weed out malicious users. A strong framework of measures
against scammers and other malicious users will allow the user ecosystem to be much freer, and
allow users a chance at greater success finding a dating partner. Another area in which this app
will stand out will be cost, since the primary goal is to help the dating society first, and revenue
second. Along with this emphasis on benefiting the users, the goal would be to also provide
information not listed on other apps explaining warnings about scammers and how to spot a
scammer with articles and links to stories on the subject. Another goal to differentiate from other
similar apps is to make it much more flexible and more user friendly with a simplistic design.
9
PART II
Functional Decomposition
Since the project will be a web application, the overall design should be relatively simple.
We have built the framework website using React, so much of the code is in JavaScript. React
allows for easy implementation and organization of the various pages and files needed. React
also has access to a multitude of helpful libraries, and many will be used, such as tindercards, to
make code implementation as quick and as simple as possible. Since the goal of the project was
to create a working sample, the various components to the website were kept as limited and
simple as possible.
There are 3 main pages that will be displayed on the website, a login page, a new user
page, and the main display page. The new user page will save new profile information to our
online database, Firebase. When creating a new profile, there are a few constraints. First, the user
must allow both location and camera to be enabled in their browser. If neither of these are
allowed then the user cannot use the site. Next, the login will check the user’s geolocation. If the
geolocation is within the accepted areas, then a profile picture will be taken, and the users input
The login page will simply check that a user profile exists before allowing a user to
access the main display page. It will also have the same geolocation check as the sign in page.
Once logged in, the main display page will show available profiles for the user to match. The
profiles displayed are those stored in the Firebase database. A user will be able to “swipe” left or
right depending on how they feel about the available profiles, with the intention of finding a
match. If time allows, the “matched” profiles will be coded to save to the database, and a
10
messaging system will be set up for matched profiles to communicate. Since this project is only
that most other dating sites include will be left out due to time constraints.
Since this project is a working sample of a larger idea, the initial project should be
somewhat limited in scope. This will allow for a relatively quick functioning web app,
particularly since it is using React. However, the use of free hosting sites and a free database
system (Firebase) will limit the connection speed as more users begin to use the site. This will
also put a limit on the total number users until larger database and site hosting can be afforded.
Since this project is smaller in scope no efforts were made to pay for better hosting sites.
Ultimately this project should be able to scale well, assuming the necessary costs for hosting can
be met. React is a framework that can scale well to larger sites, and is used often in web
development. Additionally, many of the concepts that this project is implementing can be carried
over to larger sites, and even be improved. Due to the free nature of the Firebase hosting, site
security is at the discretion of Firebase. While their security features seem robust, this could
ultimately be improved with better hosting. The code size for this project should be relatively
Final Deliverables
The final deliverable for this project will be a functioning web application hosted on
Firebase. The web application will be able to identify and track a user’s geolocation, and lock
them from the app if they are unwilling to allow geolocation access to the app. The app will have
a sign in, log in, and main display page. The app will display profiles stored within the database
11
so that a user can favorite preferred matches. Database schema, Firebase links, and any other
appropriate links will be delivered as well as picutres/documentation of any user test results.
Approach/Methodology
This project has been approached in an organized structured manner. Research was
primarily spent either through deep dives through google, or through exploration of
React/Firebase tutorial videos and documentation. Each week the team members met 1-3 times
in order to discuss what was to be implemented, what needed to be done next, and to distribute
weekly tasks. Each week focused primarily on one aspect of the project, with small extensions
Before the first week of the course, there was a great deal of research and information
gathered. Team member Lina Deen spent several months signing up for some of the various
dating apps in an effort to study how they were designed, as well as see what was offered or
missing. She took note of the ways in which she felt unimpressed, and made notes on what could
be done differently, what things to avoid, and what methods other users use when using dating
apps. She also spent a great deal of time interacting with and researching the methods of
scammers, so as to know what they do and how to identify them. She found that many of these
apps were very similar, and that the scammers tended to use similar strategies across the different
platforms.
Having done much of the needed research, this project was then broken down into some
major milestones that needed to be accomplished. First, the general website layout and pages
were designed and coded with JavaScript using React. Next, the security features were
12
implemented, followed by the necessary tweaks to the profile code. This was done concurrently
with the tindercards set up for the main display page. From there, much of the remaining effort
was spent implementing and solidifying the connection to Firebase. Once the Firebase
connections were established, profiles were fully fleshed out for what would be stored in the
database. Finally, the website was to be made live for testing. After testing final details and any
Legal Considerations
There are two major legal considerations that this project will observe. First, is the issue
of data privacy. Like any other application that stores user data, there will need to be strong
security measures to ensure private data for each user is safe from threat of external discovery,
such as from hackers, or internal abuse, such as employees or 3rd party software. As data
tracking has become more and more of a hot button issue in the United States, measures will
need to be implemented to abide by laws regulating such data tracking. Since strong data security
measures are a bit beyond the scope of time for this project, the only implementations will be
secure logins and profiles, as well as secure hosting for the site.
The other consideration is that of abiding by laws regulating the use of dating apps by
minors, as well as those relating to predatory or other unwanted sexual content. These issues are
of utmost importance in designing an app that is online and is romantic in nature. Measures have
been implemented to ensure that age verification is strictly enforced. In addition, there will need
to be safeguards on the sending of content between users, such as restricting the sending of
Ethical Considerations
According to the Federal Trade Commission Consumer Information (2019), many people
turn to online dating apps or websites hoping to find someone special. However, instead of love
many find scammers trying to trick them for either romance or money. Many scammers operate
primarily from African countries such as Nigeria and Ghana, and use those dating apps to take
advantage of the lack of privacy and security inherent in the apps to scam vulnerable individuals.
The primary motivation for these scammers includes money, faux romances, and in some cases
very nefarious purposes such as sex and drug trafficking. Unfortunately, these scams can cause
damage to many both financially and emotionally, and in extreme cases leading some individuals
Scammers tend to share similar traits that are based on lies. These traits include acting
very affectionate, working abroad such as on an oil rig or military deployment, and typically
being a well-to-do individual who has a sudden need for cash. The distance allows them an
excuse from meeting in person. They usually claim to need money for an emergency such as
emergency travel/medical expenses, customs fees, or any other seemingly reasonable debts they
can conjure.
An example would be that they lost a wallet and need to pay for a surgery, or they are in
trouble and need the money to save their lives. It is usually hard for people to identify if the user
is a scammer or not. These scammers mostly live outside of the United States, and they will steal
pictures from random people, then use them as their own under a fake identity. They will use a
VOIP phone line to subscribe which gives them access to choose a local United States address.
14
Another ethical concern that could be an issue is that of the abuse of personal data. Many
large tech companies, predominantly social media companies, have faced increasing public
frustration over the acquisition and tracking of personal data. This project will seek to keep user
data completely confidential, and has no current or future intentions of using this data for
anything other than the project's stated purpose. By keeping personal data safe and secure, and
by not implementing data tracking features, users can sign up for the finished app without
concern.
PART III
Timeline/Budget
The execution of this project followed a modified version of the timeline that was
outlined in the project proposal. This was in part due to unforeseen issues, as well as changes in
the approach and software that we felt were necessary for better implementation of the project.
For an overview of changes in the weekly goals/accomplishments, see appendix A. While the
week to week timeline did change from the project proposal, the overall milestone goals largely
did not, although some were not reached due to time constraints. The milestones this project set
Of these, the only milestone that was not hit was the implementation of the search function. This
was largely due to the short timeframe from which this project was given to work with. It is
assumed that this would be easily completable should the project continue.
There were some minor changes to the other three milestones. First, the html/css
framework was built using React js. This was not originally planned, as the thinking at the time
of the proposal was to use Amazon AWS. Using React however gave the team members a
chance to apply their knowledge to a new software. React gave team members the ability to tap
into several different sub packages, which made the overall implementation of the project easier.
The next milestone that was changed was the implementation of the database and website
hosting. During the switch to using React, Firebase was discovered as a reasonable solution to
hosting both the database and the application. The Firebase setup did not require extensive SQL
programming, instead allowing team members to create the needed tables using a GUI. This also
gave them the flexibility to modify tables within the database on the fly while editing the code in
React. Additionally, while the original goal was to complete the database connections second,
this was ultimately moved to the end as issues arose that pushed back its implementation. Instead
the security features were the second milestone that was reached.
In terms of cost, this project was able to stay within budget. The use of free software
allowed the project to continue full steam ahead. Firebase contains a free version that allows
users to host small web applications, with limits on data and per day access. Since this project
Usability Testing/Evaluation
Testing is a key component of any programming project, and this project was no
exception. In the project proposal, there were forms of testing that were proposed, as well as a
timeline to begin testing around week 5. However, with the flight changes to the timetables and
scope of the project, the testing that occurred was slightly different than what was originally
intended. These changes were both out of desire to be efficient in the project implementation. In
the project proposal, the 3 phases of tests were to be team member testing, unit testing, and peer
testing. Due to the time constraints, unit testing was sidelined as a future goal. Instead, the team
member testing was largely increased, and implemented every week. There were no changes to
Usability testing for this project occurred in two different stages. The first stage was
concurrent throughout the entirety of the project timeline. This was the testing of each bit of code
by team members. With each new implementation of features, the team members worked to
constantly “break” the new feature through live testing to ensure that it functioned as intended.
This was done through either running the application locally, or after the application was
deployed, using the live application. These tests included things such as checking for spelling
errors, checking login features, testing database connections by sending/receiving data from
Firebase. Both team members contributed to this, and weekly meetings were held to discuss
The second phase of testing occurred in week 6. The second phase was the peer testing of
the deployed application. While the original goal was to begin peer testing in week 5, there were
17
some issues with the Firebase code not deploying correctly and so the peer testing was pushed
The peer testing consisted of a questionnaire that was emailed to three individuals (See
Appendix B for Blank Questionnaire), which they then emailed back with their responses. The
questionnaire detailed a list of instructions, with questions for the tester to answer as they
progressed through each part. The peer testing revolved around the implementation of the
security features. The peer testers were asked to open the deployed application, and disable the
location and camera access. From there they were asked what they could access on the
application. They were asked to do this again after enabling the location, and again after enabling
the camera. The testers were asked to create a profile, as well as test this new profile on the log
in page. Testers were also asked for general feedback after finishing the instructed questions.
The general results of the peer tests showed that the location and camera security worked
as intended, as it disabled user access. However, the peer tests also showed that the login page
was not working as intended, as 2 testers found that they could log in without any username or
password, or with different usernames and passwords than they previously created login. After
examination this was due to an incorrect implementation of the Firebase code on the login page,
which was fixed later. Overall, the user tests showed that the core mechanics the project sought
to accomplish were working as intended, though there were other areas that still needed work.
Final Implementation
This project sought to create a proof of concept for a dating app focused on user security,
and mitigating the abuse of scammers. To do this, the application was built in React, using
18
node.js and axios. Both team members used Visual Studio Code as their IDE for the project. The
application was hosted on Firebase, and also used the Firebase Cloud Firestore for the database
implementation. The application was written predominantly in JavaScript, with small pieces of
both html and css. The deployed application can be seen at https://safe-dating-7da1a.web.app/.
The overall design of the code follows the general React framework that is
recommended. The various pages and components are broken into smaller manageable files that
are then referenced throughout the program. Each file makes reference to the necessary
components and files that it needs to draw from, such as in image 1 below. The overall file
Image 1 Image 2
The design of the project was laid out in a simple format. There are 4 pages: a login page,
a sign-up page, a main page, and a chat page. The chat page is incomplete, and only represents a
sample of future goals. The login page is the index page and acts as the home page as users first
access the application. The login page has a connector button that leads to the sign-up page.
Upon a successful login the user is brought to the main page. The main page displays the
available profiles stored within firebase to the user, and they can choose to swipe right or left.
19
The functionality for saving preferred profiles was not able to be fully fleshed out in the time
The login page has a few major components. At the top it contains a message to the user
regarding internet scammers, as well as the site logo. It then has two input boxes, one for an
email and one for a password. If the user does not enter a valid email address, then they will be
notified and unable to continue. This is controlled by using built in React functions to check for a
valid email address. Underneath the login form is a button that routes users to the signup page.
One of the main objectives of this project was to implement security features to mitigate the
abuse of scammers. The first application of this was on the login page. When first accessing the
page, the user will need to allow the application to check its location. Not doing so will result in
the user being unable to log in. This location check is done on the first attempt at accessing the
site. The geolocation is tied to the users ip address, and is therefore the way the app will
manipulate user locations. At the time of this writing, the login page does not currently check the
user against the database, although completing that function is a goal of the final week.
The sign-up page contains the main focus of the security features. It is a simple layout,
with a form asking for some basic user information. Like the login page, geolocation must be
enabled in order to access the page. An example of the geolocation code can be seen in image 3
Image 3
In addition, a camera must be enabled as well. Not allowing the camera will allow the
user to see the page, but will not allow the user to create a profile. At the bottom of the page
there is a picture frame that displays the current view of the camera. It also contains a button to
take a picture of the camera view. The purpose of this is to be the profile picture taken by the
user. This will mitigate the use of stolen profile pictures for scammers. With both of the
requirements enabled a user can press the sign-up button after filling out the form and taking a
picture. This profile will then be saved to the database, and will display a message notifying the
The platform page is displayed after a user successfully logs into the application. This
page has a nav bar at the top, as well as a series of buttons at the bottom. The main view of the
page however, is the display of profiles that are stored in the Firebase database. The application
makes use of the tindercards package found in React to display the various profiles as
“swipeable” cards. Currently, the implementation of saving these cards has not been finished,
21
and was decided to be outside the scope of this project given the time limits. The code in image 4
Image 4
The final page of the site is the incomplete chat page. For now, the page makes use of the
Firebase chat function. This page allows users to communicate via messages. Since this project
was meant as more of a proof of concept for the security features already discussed, this page
The last major component to the design of the project is that of the database. The
database is stored and hosted on Firebase. Firebase is a NoSQL database. For this project the
Cloud Firestore was used to store the pertinent user information. Profiles that are created are
stored under the “people” collection. This collection uses the Firebase default ID’s for each user.
Each profile is a document according to the Firebase structure, and each document has various
fields for the user information. Additionally, these documents can also contain other collections,
which this project proposed to take advantage of in future efforts in order to store like/favorited
profiles for each user. An example of the Firebase structure can be seen in image 5, and the
22
proposed schema for the database can be seen in image 6, both shown below.
Image 5
Image 6
23
There were a handful of issues that ultimately changed or inhibited the completion of this
project. First and foremost was the issue of time. Both members of the project work full time
jobs, as well as have families that they take care of. In both cases there were large work
deadlines that ultimately forced the team to put parts of the project on hold, as there simply
wasn’t enough time to complete all of the tasks desired. However, this does not detract from the
fact that the team spent as much time as possible trying to solve the issues presented and
The second issue that occurred was a slight change in the timescale due to some growing
pains using unfamiliar software. The completion of the front-end framework was pushed into the
second week as the team members learned to use React. This also was the case with
implementing the Firebase connections. The original goal was to complete the Firebase
connections early, but due again to unfamiliarity with the system, its implementation was
stretched out over the duration of the project. The issues with Firebase occurred in this order
over the duration of the project: 1) The React code was not syncing properly with the database,
and no data could be retrieved or sent to Firebase. 2) The profile system was not properly
sending information, only retrieving it. 3) The deployment of the app over firebase was not
working as intended.
While these issues were ultimately resolved, they did limit other areas of the application
that could be implemented. For example, the chat feature was left incomplete, as it was not
deemed essential to showing the proposed idea behind this application. Another area that was
24
affected was the search and save features. It was realized during the struggles with Firebase that
these features would be outside the scope of what this project sought to accomplish.
Conclusion
While dating applications and websites are common forms of dating and meeting others
in the current age, they are not without danger. Scammers take advantage of relaxed security
measures to create fake profiles in an attempt to scam people out of money or other nefarious
purposes. They lie about their locations, steal pictures from social media accounts on the
Given this issue, this project set out to create a proof of concept of an application that
could mitigate these abuses. This was conducted through the creation of a web application using
React and Node.js. Security measures to check for and track user geolocation were put in place
to remove scammers ability to lie about their location. Profile pictures were taken and saved
upon account creation in order to avoid the problem of stolen pictures on fake accounts.
While this project was only a proof of concept, there is much room for further
improvement and refinement. The team members both realized that due to the short scope of this
project, a fully-fledged application was not a realistic expectation. However, with time no longer
an issue, there are several improvements that the team feels could be made. First, would be to
fully flesh out the profiles system, including setting up the saving of favorited profiles to the
database. Next would be the implementation of the chat features. Lastly, a more refined profile
page would allow for a better search and display system for profiles, in order to better facilitate
user matches.
25
This project challenged both team members. Neither had used React or Firebase before
the beginning of the project, and this ultimately caused some of the greatest challenges the team
faced as they learned “on the fly” while creating the application. The team learned how to
effectively distribute tasks and organize work between two members. Ultimately, this turned out
to be one of the team’s biggest strengths - the organization of work and functioning as a team.
Both team members feel they were able to put their knowledge of web design to the test, and
ultimately came away from this project much more knowledgeable in the design and
References
ABC News In-depth. (February 11, 2019). Meet the scammers breaking hearts and stealing billions
https://www.youtube.com/watch?v=U4kCN7TZ6us&feature=youtu.be
Federal Trade Commission Consumer Information. (2019). What You Need to Know About Romance
romance-scams
Johnson, K., Pontes, M. C., Vilceanu, M. O. (2017). Use of Online Dating Websites and Dating Apps:
Findings and Implications for LGB Populations. Journal of Marketing Development and
businesspress.com/JMDC/JohnsonK_11_3_.pdf
27
Appendix A
1 Finish planning and begin creation • Designed the main and login/ signup
initial html/css framework: pages in html.
• Finalize plans for project layout, as • Ported over previous code to React.
well as database design.
• Researched suitable hosting sites as
• Finalize approach for security
well as Researched using React.
features.
• Create a main page, login page, • Began researching vrious packages
profile page, pricing page (if it is that could be used in the application
determined this is necessary), and
search/profile carousel page.
Appendix B
Appendix C