Hey everyone. I am looking to be pointed in the right direction here, tutorial, wordpress plugin..etc

Im working on a site for my friend and he wants a "matching" system. Think tinder dating app almost. Two people "like" eachother based on their picture and they match. Hes looking more for if they like the same thing it comes up in the seach results. He wants a drop down of different things where people can pick what they want and they both pick the same thing they both show up in eachothers search results.

Has anyone done this or can point me in the right direction?

Thank you

Well you're probably going to need several components worked out.

  1. A database where users, "items liked", images etc. are stored in, probably easiest to use phpMyAdmin for testing/developping.
  2. PHP code for simple interaction with the database, i.e. Create/Read/Update/Delete to have users manage their information.
  3. PHP code for account creation/management. Don't forget to handle passwords in a safer manner than just storing them in the database.
  4. PHP code to search through and show the matches from the database. You could prepare the queries using views in your database to avoid messy queries in PHP.
  5. Webpages with a clear layout (lots of dropdowns get confusing sooner than you might think, imagine doing 20 on a phone)
  6. PHP code / webpages for extra functions users will expect (i.e. saving their matches, browsing people the old fashioned way)

Some general thoughts/ideas that come to mind are

  • Make a list of all the expected functions (it sounds trivial, but you'll start forgetting things when tinkering on a little detail all week)
  • Put some extra thought in the database design from the start to prevent problems down the road (using the function list). How will you store images? How will you link people together? Do the liked items come from a database as well? Get it all figured out before you have the site finished and suddenly realize a person needs multiple matches and you have to start changing everything again
  • To save time on the site design you could use a framework like Twitter Bootstrap to get good looking tables, forms, thumbnails etc. etc. set up in no time. It will also help you make the site mobile friendly (it's actually mobile first)
  • You're going to have a lot of personal information stored, so make sure that it's as safe as you can get it.. so no passwords stored in the database (just the hashed ones) or vulnerable code (think sql injection)
  • Use existing libraries (like jQuery and its many plugins) to save on time
  • Remember that users are very demanding and accustomed to a lot, most will not understand why you "can't do it as fast as google does". So be sure to inform them that, for instance, you are "calculating" their matches and so on, don't make them doubt whether or not the site is still working.

This is by no means a complete list of things, just what comes to mind. There will be many more pitfalls ahead but it's a good way to get yourself familiar with web design. Good luck!

Wow. Thank you very much for the fast and detailed reply. We have the design figured out, also created mockups in photoshop of each and every page look. Now its just putting it together. Outside its pretty basic to start. Dropdown with a list of 4 or 5 "categories" when a user clicks one category, it takes them to the "results" page that show everyone who has the same category a user clicked on.

I know nothing about MySQL except how to upload the .sql files for scripts you can download.

Want to make sure i am right here:
Design work..HTML,CSS - Twitter Bootstrap
Letting users delete their images,profiles..etc...MySQL database
Login/Logout/Register..etc...PHP
Add to favorites..PHP

Im also gonig to need a basic admin panel for later. = Downdload one to use, connect with the database..?

Im new to coding but not CMS'..I can use wordpress, drupal, joomla..etc, which all already have an admin panel which is nice.

I found this plugin for wordpress...https://wordpress.org/plugins/participants-database/

Persoanlly me and my friend agreed, get the basics down, and if the site does take off, work from there, then pay someone to rest of the stuff i couldnt do or dont know yet = Which is why i was back and forth on WP and Coding. WP might possibly get what he needs up quicker, but PHP and the coding end will create a better site in the long run, have more security and is alot more customiazable.

If you have plugins for a wordpress database I would consider using that. I'm not too familiar with wordpress/drupal/joomla but plugins are usually a good idea if your other option is to start from scratch. Chances are they already solved a lot of the issues you'd face when doing it yourself.

Design work..HTML,CSS - Twitter Bootstrap

I don't know if you have WP templates for that, in which case bootstrap might not be necessary. I was assuming ground up design and for speed and ease a framework would then help (I'm not much of a graphic designer so I tend to use those frameworks to avoid getting a programmers interface).

Login/Logout/Register..etc...PHP
Add to favorites..PHP

PHP to communicate with the database yes, so queries too.

You're probably going to need JavaScript libraries (for ease and speed, not necessity) for the common operations like retrieving form values, image zoom and so on.

Your plan sounds good and you've obviously put some thought into it with your friend, there is just one thing about what you said that sounds like a possible pitfall to me.

get the basics down, and if the site does take off, work from there

Keep in mind what you are making, a site where people go and find matches. In order to do that you'd need people, and if you want people to have matches you'd need quite a few in order for it to take off. Getting those first people could prove a problem, no one will join a matching site that has no people on it. I'm not nearly as good in the field of site promotion as others here on Daniweb, but I'm guessing you'd need some sort of mass joining right from the start so that they won't have to wait days for others to join. Either way, you might need some sort of backup plan for when it doesn't take off right away. Perhaps a secondary service, or special perks for first joiners. The point I'm trying to make is that you should also consider the options for if it doesn't take off. That can include pulling the plug, that's up to you.

For the WP versus PHP part, it depends on your goals. If you are planning on making more websites, PHP is not a bad way to get started, and projects like these are a good motivation to keep going. From personal experience, I've been meaning to get familiar with CakePHP for a while now but the lack of any real web-project on my list has made me put it off, even though web-apps are the future. So having one, like you do, can be a great way to keep on learning.

For certian functions im going to need JS 100%. To me worst that happens, i do what i can and he pays a programmer to do the rest of what i cant do/figure out. Im doing PHP right now only beacuse its keeping me learning and at im going to need to know this for harder websites, might as well use my friends as a test run since i have the chance to experiment.

About the members...Yes 100% agree, no one wants to take the first plunge. Right now im more concerened about the functionality of the site. Step by step for me atleast.

I can minupluate and "play around" with php prettty well as i used to do all the time for Wordpress. I can make templates if needed. It writing it from scratch is my problem, and my main issue as has always been, making it all like together. It just hasnt clicked in my head yet like it has with HTML and CSS.

As for the code, ive found tutorials and sample code ive been using with good success, with the look so far atleast, of course there is login/logout/register codes all over the place. My main concern for me is the Database and putting the code "together" to work as one. Once i understand that, im pretty much set for what he need done as of right now

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.