I am looking to design a review website very similar to Yelp, but I am wondering what kind of program or development is necessary? I am not very familiar with the different back end languages, APIs, Frameworks, etc.. Also wondering the type of developer to look for...
Hey Bobby, correct me if I'm wrong, but from your question, it sounds like it's not the specific languages, APIs, frameworks that you're not sure of, but rather what kind of development skills are necessary to develop such an app.
For a Yelp-like app, or any app that has a user interface and some data supporting it, you'll really want a full-stack engineer that can do both frontend and backend development and serve as a bridge between the two. You may have heard of the MEAN stack. This is a set of frameworks that combine to allow you to create dynamic yet simple apps that perform CRUD (create, read, update, destroy) functions. This should be sufficient for you to build a Yelp-like app.
Despite being a software engineer, I would emphasize that it's not the technologies (APIs, languages, frameworks) that matter as much as the knowledge and awareness of modern tools. A solid full-stack engineer that shares your vision for the app will get you much further along than my suggestion here. Ironically enough, despite pointing you to the MEAN stack, I would probably choose a different stack to develop such an app, if I were the one building it.
You want to build something yelp-ish. OK, so do you want to clone an existing business and try to compete tiny little apple to apple tree. Or, do you have something better. What makes your apple better; how do you differentiate?
Once we have an idea of what 'that is', then people can chime in with a sense of honesty about the skill set your developer and/or designer needs to possess.
Either Ruby on Rails or Python with Django. Both languages are insanely popular and both frameworks (Rails and Django) are too.
I've seen plugins in WordPress that work simillar to Yelp. There is one plugin called Geo Wordpress directory plugin, maybe that would help as a less expensive option to start, then you can go from there.
I hope the link below can be of help.
You should look for a Fullstack Developer.
Minimum Skills required for BackEnd are: Firebase, AWS Web Services or Heroku, NodeJS or Python or PHP or Ruby on Rails, Web3 (if Blockchains)
Minimum Skills required for FrontEnd are: HTML5/CSS/JS, JQuery, AngularJS, Bootstrap
For the backend, PHP is an option yes. It's cheap and easy to find developers. The problem with PHP though is that it's easy to mess up and hard to get right (or easy to get right depending on who you are). There are many small agencies selling the idea of development with PHP. It looks half decent on the surface, but under the hood, it's awful!! Even the slightest amount of traffic and the site will fall down if it's not coded correctly. And that's the issue when people start saying, you can use WordPress for that and not really understanding what PHP can and can't do. Yes, it can scale, but only if you have the right developers creating awesome code, a choice in frameworks (Laravel or Magento) that play well with PHP and some good server ninjas working behind scenes. If you haven't got those in place, your awesome idea will fall down very quickly!
If you're looking to create something serious and you have the cash, I'd look at using either Ruby on Rails or Node.js. Development might be a bit more expensive, but you'll usually get something far quicker. And yes, if Node.js or Ruby isn't implemented correctly either, your platform will fail, but I usually find it's far harder to get wrong with those languages than PHP. Here at Twicely Media, we use Node.js mainly for platform development. It's easy to use and if you get right, it's amazing at scale. We still use PHP too (Laravel or Magento), but only if PHP is the best option for that project. There are some cases where it might be.
For the front-end, depending on if you want to create something crazy or simple, use React or a simple jQuery implementation. jQuery is still good, especially if you're creating an MVP or if you're looking for speed rather than maintainability. React though, will give you an awesome front-end framework to build on, but it takes good planning and developers who know what they're doing.
In terms of databases, I'd personally go with MySQL for this type of platform, just based on what I know of Yelp. You could use Mongo too, but in terms of getting up and running quickly, and having something that you can manage, MySQL is a good option.
What developers you need. How much money have you got?! You can either go full-stack or have a full development team of back-end and front-end developers, QA and Dev-ops. It's an open question really and depends on what you want to do and how quickly you need it done.
Hope that answers your question. There is a lot of bias with these types of questions and answers, mainly because agencies and developers will argue the case for what they know and can create easily. We choose our languages, frameworks, and architecture based on the project, who the users are going to be, what client needs are, and look to the future of where the project will be in a few years time. If you dictate which approach you use without understanding the need first, then you're not really a developer, but a salesperson.
As some have pointed out, this isn't really a language question, and with the information at our disposal, it is an impossible question to answer.
To truly build a usable, scalable, performant site that exposes functionality similar to Yelp would require custom development - this task would involve many skills, and is not something you can just do with Drupal or WordPress.
The actual language/framework is less important (provided it is modern and well-supported) than the architecture and overall design.
Precisely PHP with any of it's good scalable MVC frameworks like Laravel or Symfony for the backend, PostgreSQL for the database and HTML, CSS and AngularJS for the front end. Hope this helps. You can read more about similar platform solutions here.
Any full stack developer can pull it off. A smart developer will do it better and faster. By smart developer, I mean a person who has a good understanding of available technology stacks along with excellent analytical capability. Unless he/she understands your vision and the industry space your are in, a technology implementation will always miss the mark.
For framework or language, I would recommend Laravel and PostgreSQL as back end with React or VueJS on front end. Go for continuous deployment and integration tools. Use Git based source control. Use a project management and time reporting system to manage requirements and budget and finally include a good crash reporting system (Like bugsnag or rollover etc.) to manage quality of the solution.