469,282 Members | 1,967 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,282 developers. It's quick & easy.

Coding a Music Chart System?


I just signed up on here, I found this site by googling.

A little bit about me, I've been building websites since I'm 14, now 23. I know about graphic design as well, my knowledge on the coding side is pretty basic tho, I'm slightly towards the artistic creative side, that's probably why my design skills are more advanced. :)

To my situation:

I'm planning to build a website that will contain a music charting system, like for example billboard.com (with sub-charts like Hip Hop, R&B, Rock, Country, Electro etc.), it will not chart major label artists, but normal musicians that sign up on the site, composers (and not singers) to be exact.

I know that PHP, Java Script and Ajax play a role, I've also found out that this can be done just with PHP.

My Question:

Do you know any resources that you can link me to? That would help me on learning how this is done.

Just anything, doesn't matter if it's an already made open source script that I can look at and learn how it's done, or books, dvds or tutorials, or paid scripts, anything.

I could find lots of information on the internet for all the other stuff I want to implement into the side already, just on this chart system I can't find anything. I've also considered getting in contact with an affordable programmer, but before I do that I want to gain as much knowledge on this topic as I can to be prepared.

Jan 30 '10 #1
10 3150
1,044 Expert 1GB
I'm not aware of any open-source projects, though I'm not very informed on what's out there. However, this doesn't sound like the kind of thing that'd be in demand. It's use is too limited. This sounds like the kind of project that would be produced in-house.

On that note, unless you are looking to hire a programmer, you'll have to learn how to program. I'd suggest studying database design and learning how to communicate with the database via PHP. That will be the most important part of your system. You'll want to know how to order records by weighting (i.e. weighted by popularity, etc.), and breaking them into normalized categories.

You'll also need to know PHP, HTML, and CSS, but I assume those are obvious.
Jan 31 '10 #2
Thank you for your response. Your response helped me to see the picture a bit clearer.

I've already spent more than half of the day with getting into MySQL Databases, at least I'm starting to understand the logic behind it, even though I'm not well versed with all the terminology and what it all means. I still have a lot to learn.

I have another question, when I go to sites like billboard.com and look at the source file then I see an awful lot of CSS and an awful lot of div tags. I see not one table tag, PHP or any Database scripts or anything else of that matter. Are those tags (which I'm looking for) actually there but they are not shown in the source file through Firefox? Or is this a new standard way of programming websites, excuse this question since I haven't been keeping up with the changes in the standards of webdesign for a while. :)

Since the communication between the Database and PHP is the most important part a basic process of the website would look like following:

1. users upload song
2. song *data* gets registered to the specific user in the database
3. database orders song by weighting and gives the information back on the website

Categorical weighting would look like following:

- all R&B songs go in category -> R&B => songs get listed by popularity (e.g. ranking from 1-1000)


- latest uploaded songs go in category -> newest songs => ordered (weighted) by date: from latest to oldest

This all makes sense and I'm seeing the picture much clearer than when I first had the idea. Funny part is that it all seems pretty basic, even though there's a hell lot of work, time and technical knowledge on the programming side involved.

If anyone has any links where I could learn how a system like above described is build, I'd really appreciate that. A categorical listing with weighting by popularity.
Jan 31 '10 #3
431 Expert 256MB
I see not one table tag, PHP or any Database scripts or anything else of that matter.
Table tags in HTML are considered to be old fashioned for page layouts now days and designers/developers are opting for CSS layouts and not just to be fissionable.

As for php scrips you should never see them in your browser view->source as php is run by the server and not by the browser. I am not trying to patronize you but IMHO you should start with simpler examples, study php and mysql on some smaller examples. Maybe get a book that will guide you through the programming language, there is so many out there.

If anyone has any links where I could learn how a system like above described is build, I'd really appreciate that. A categorical listing with weighting by popularity.
If you enjoy the process of learning you'll get there, but if you only trying to do something fast than better hire someone. I am sure that almost everyone here started with "Hello world" example. I know I did. :)))
Jan 31 '10 #4
zorgi, as I stated many times, maybe it wasn't as clear my goal is not become a crack at programming, my goal is to develop a project. And I'm only digging deep into this to get a picture and to be prepared once I hire a programmer. Think about it he'll want to ask me how I want the script, and with no knowledge at all I will not be able to answer him.

But after doing research I'm able to tell him, it should have a, song_name, song_id, artist_id, category, and rank in the database, see where I'm going? I'm able to tell him in one simple sentence it should be a categorical list with weighted popularity.

Learning a language properly can take up to a year and even more, and I don't intend to invest that amount of time just to learn one little aspect of my goal, I'd be finished with my goal in like 3 years, till then there's no demand or someone else came up with a similar idea already.

It wasn't my intention to come off as the guy that skips and tries to get in as much and as fast as possible, my apologies if it did, my intention is to get an overview and understand the logic behind it, not to become a crack at this.

Call my position entrepreneur / producer if you want, I didn't want to put it like that because it sounds more important than what I'm doing right now lol.

Of course I'll still do things myself where I can, I'll do the CSS since it's pretty simple, and other simple scripts, and of course the design since that's what I'm good at.

As I stated doing the database work seems to be a lot of work combined with technical knowledge, so I'll likely not be able to do it myself.

At the same time I see nothing wrong with *not* internalizing the material, instead just getting an overview and a *feeling* for it. Maybe you just thought I wanted to become a programmer.
Jan 31 '10 #5
1,044 Expert 1GB
That's not true. You're talking to programmers right now. It's our job to take what you say, regardless of how unclear it may be, and turn it into something complete and concise. Most of my clients aren't sure of what they want, from the cosmetic design to the most basic functionalities. It's my job to take their "idea" (and I use the word loosely) of what they want and turn it into what they *really* want.

You're concern with the back-end will do no more than filter out the bad programmers from the good programmers. However, there's an easier way to do that: Get a programmer from a programming forum. I don't want to toot my own horn (though I do like doing it :P), but the "bad" programmers are the ones that we can't reach. They are the ones that learn the basics from school and assume that they know what they are doing. We are the ones that take advice from each other, both the seasoned pros and the rising stars. We know of the best ways to get things done because we've seen all of the bad ways, and have come to a consensus on the good ways.
Jan 31 '10 #6
I wouldn't say "true" or "false" it's not black or white, it's pretty opinionated on what's the best approach.

I'm the type of person that likes to be involved in every aspect and knows about every aspect at least the basics. I know there are a good amount of people that just go and say "I want a site", "ok how do you want it?", "it should look nice" <- that's the type of thing I can't identify myself with, and I don't like giving more control to someone than needed, except there's already a trusting foundation build which can be further extended.

My *opinion* is, that in this situation I'd be the person giving direction, and it's my obligation to be detailed and clear in my vision. Of course I'm just a human myself and I don't wake up in the morning and have a clear vision as daylight, that's why I'm doing the research and all the other gaining of knowledge to make the vision as clear as possible.

To put it simple in one sentence, if I'm vague with my instructions, the end-result will be vague. And I'm too much of a critical person to be happy with a result that is not close to my vision.

Thank you for your great tip in the second paragraph. And yes, you're right it will help me to weed out the bad programmers from the good ones, to put it simple it will help me to surround myself with skilled and good people which is a very very valuable and important skill to have, most people fail simply because they surround themselves with the wrong people.
Even though I can imagine that there are dope and skilled programmers out there who don't work in expensive web development teams, (meaning they are affordable), I'm still not quiet sure how I'll be approaching this task, I'm very cautious about this. I've heard from someone who let a programmer program a web application, which the programmer did in a good way, but what he also did was to implement back-doors so he can sneak in and fiddle around with the software.

So, not that I need to find one that is affordable and adequately skilled, he also needs to be trustworthy, which is all in itself a quiet difficult task over the internet. This is also one of the reason why I'm trying to learn as much as I can, so I can detect faulty things quickly. If I'm approaching this blindly with no knowledge and I give all the control to the programmer like you described I'll be much more vulnerable.
Feb 1 '10 #7
1,044 Expert 1GB
Haha, really? That's a new one. As a developer, I'm always given full access to my projects anyway, but that's for making future changes. I've never had enough interest in any one project to want to be able to sneak in, but we're getting off-topic.

Anyway, web development isn't something that is easily learned. It's a combination of practical theory and implementation. Everything can be done in multiple ways, and most implementations require a combination of technologies and methodologies. Learning the basics of these technologies is one thing. Knowing the best practices and efficient methods of implementing them is another. And let's not even get into security issues.

Basically, I just want you to see that you can't just "develop a project" by learning a few programming and database topics. You are getting too specific. You want to be a lot more abstract. There is a place between the vague, "I want it to be nice," and the specific, "I want the database tables to use unsigned integers as IDs." Abstraction on the design level will not only help you see what you want more clearly, but make the programmer's job MUCH more speedy and efficient.

What you should look into is UML and proper documentation such as use cases. Use cases are the best place to start, as they describe the desired functionality of the website and how external sources (i.e. users) communicate with the application. I find them to be most useful piece of documentation I create, next being the DFDs.

And if you're interested in hiring the best PHP programmer on these forums, you're looking at him. ;)
Feb 1 '10 #8
Just to make it clear again, it was never the intention that learning a view "tricks" will "make" me develop the project, getting an *overview* will *prepare* me develop the project, that's a small but crucial difference. All this information will help me *calculate* things better, and that's all I'm doing I'm calculating, I'm weighing out what are the difficult (and the most important!) tasks and how I should prioritize them.

And see this is exactly the reason why I'm doing all these research, I just get into it and while going this route I find out about things I never knew of. UML looks like a pretty helpful thing for me. It will help me get my vision clearer, that's the whole point why I'm doing this, if I wouldn't have started this thread I maybe wouldn't have found out about UML. As I said there's no right or wrong, the BEST approach is: Just doing it.

BTW thanks for getting this thread on-topic again, I was worried this is going to end no-where haha.

Since you addressed it in the last paragraph, I'd like to know about that a bit more. Just for a proper chart system from what I described what do you think from your own experience how many hours it should take approx?

I can PM or email you the *exact* details of the project (chart system), don't really want to put everything out here, I can even show you my first design.

Yesterday I've also purchased a server, I only purchased it because I got the server similar to what I initially wanted for the fraction of the price, so can't really go wrong with that, even if I need later something different it's no problem because I can change and upgrade and all of that, the server provider is pretty flexible.

This will be plenty for the start and just trying to get it run, I didn't even plan to buy a server like this "now", but I couldn't say no to that offer lol.

p.s. I'll PM you my email in case you want to respond that way.
Feb 1 '10 #9
1,044 Expert 1GB
Sorry, but unless I'm being paid, I don't handle thread responses privately. My rates are fair (I still have a semester of college left, after all), but when it comes to general knowledge, I feel that it should be fairly spread. That's the only reason that I joined this forum. I gained "Expert" status within a week and feel that I have helped the PHP community here a lot.

That's not to say that you can't be generic in what you're after. But, like you said, vague questions result in vague answers. But before you dive into UML, I want you to take a step back and look at use cases. Use cases are abstract and precise, and can be understood by anyone on any level of the development process. UML is stepping more into the direction of the programmer, which becomes more clear as you get into DFDs (data flow diagrams) and sequence diagrams.

And if you're interested in the amount of money it'd take to complete this project, I work hourly. So, my productivity improves as the preciseness of the request improves. When I give quotes, the client and I typically start to break it down into portions, similar to use cases. However, use cases are sometimes too "formal" for my average client. I'll inform you of these details in private.
Feb 1 '10 #10
Yes, I took the last paragraph of the other posts as an offer to do the job, that's why I sent you my email and asked the questions how many hours it would take. I didn't send you a PM so you can educate me on this topic, sorry if that wasn't clear enough, I took your statement as an obvious offer.

I'm looking forward to your email, and I will also look into use cases.
Feb 1 '10 #11

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

2 posts views Thread by Michael Lvings | last post: by
5 posts views Thread by Zach | last post: by
5 posts views Thread by Sahil Malik [MVP] | last post: by
9 posts views Thread by Patrick.O.Ige | last post: by
18 posts views Thread by Marcel Saucier | last post: by
reply views Thread by Gilberto Avila | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.