Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP

Another Social Network Question!

Hello all!

I would like to reach out to our treehouse community and ask the teachers and amazing coders a question.

I've been planning a site build for a Social Network that will involve a database for user uploaded content, chat, inbox messaging, likes, comments, profile pages, print, photo gallery, and a digital book that will contain user uploaded content. And eventually adding in videos.

A lot for a beginner! So I plan to start with the main features of the web application and focus on the core social network features, profiles, CMS, UX and UI design, content upload form and photos. I would like to build the site so that it is stable enough for a dynamic build with over 50,000 plus members in time.

So to the question at hand.... What languages should I focus on to build this core and what should I learn along with it to add the desired features and functions?

In advance, thank you for any and all of your responses!

-Kei

3 Answers

Kevin Korte
Kevin Korte
28,149 Points

You basically have two sides here, the front-end and the back-end of the site. The front end is what the client's browser receives. So languages like HTML, CSS, and maybe Javascript which is standard. Than you can decide if you're going to use library's on top of that, such as using jQuery to help with "Javascript'y" things. Maybe for the CSS you decided to use Sass, Less, or Stylus as a pre-processed CSS. These things are so powerful that as you learn more, you'll likely want to incorporate them into your project.

For the backend, I assume you're considering PHP as the main dynamic language since that's what you tagged here. However, Python or Ruby could do this as well. There's more, but these are the big three.

With the back end picked, you can than consider whether a Framework is right for you. An example might be Laravel for PHP, Django for Python, or Rails for Ruby. However these aren't your only option either.

You'll need a database language. MySQL is popular, but don't base your choice on that. You'll likely end up dealing with JSON at some point.

There is a lot to consider. Good luck and let us know how it goes!

Thanks for your reply Kevin! I have been thinking about utilizing Ruby and Rails. I wasn't too sure if PHP would be something that would be best to use since popular social networks utilize PHP along with other languages or Ruby and Rails.

As far as the database language, would MySQL be better to utilize for data content such as profiles, photos, user uploaded content, and eventually videos?

Thank you for the luck and the advice!

-Kei

Ricky Catron
Ricky Catron
13,023 Points

Any backend language can do what you are talking about. I would highly recommend a heavy framework for whatever you chose to take a lot of the load off your hands. Either PHP/Laravel, Ruby/Rails, or Python/Django, or JavaScript/Node. These frameworks do a lot of the heavy lifting for you and have builtins or plugins for things like Users. It is a big project I would recommend using Progressive enhancement. Build the HTML as you learn HTML, the CSS as you learn that, the JavaScript when you get to programming, and then pick a backend Language, framework, and database to make the whole thing work together.

I can't wait to see what you build! Goodluck! --Ricky

Hey Ricky, thanks for your reply!

I appreciate your advice. I think the Progressive enhancement approach would be best.

Looking forward to putting your advice to work and can't wait to share the results!

-Kei