Hi all, can anyone point to a site or describe how I can go about designing (database & web design & layout) of a basic job search website.
Thanks in advance.
Hi all, can anyone point to a site or describe how I can go about designing (database & web design & layout) of a basic job search website.
Thanks in advance.
Unless you are able to come up with a structure on your own you will never truly be able to understand the concepts behind the application you are trying to create. I recommend taking a day or two just to plan out your project.
Worry about design last. I would love to help but like others here, we have our own projects to handle :P
Best of luck!!
Ill take a second to explain how I do this. I code primarily in PHP/MySQL.
Step 1: Think of all the things you would like your web site to accomplish.
Step 2: Think of the information that may need to be stored. Plan out your databases according to this. List the fields, and then move on to the next step. e.g. Job Listings Database , User Database etc.
Step 3: Think of the pages you will need. e.g Employee Login, Employer Login, Submit Resume etc. and think about how the databases will send their information to these pages. Refine your databases in this step, make sure you have the correct fields to accomplish the desired tasks.
Step 4: Think of the file structure you will use. Many people follow a traditional MVC Format. I am working on my own right now, it makes things much easier and far more organized. Learn more about MVC
Step 5: Sign up for SO! The best thing you can have is a place to go and gather ideas from people. Sometimes you may get a mental block!
Again, best of luck!
I would suggest starting with a good set of requirements and then begin identifying objects within the application, properties of those objects, and how those objects relate to each other. These objects could be users, companies, resumes, job postings, etc.. You can then take this information and begin drafting an Entity Relationship (ER) diagram to depict these objects and relationships.
You could also write out some use cases to help you identify how the objects fit into various workflows (i.e. employer registers, posts a job, applicant registers, submits resume, searches jobs, applies for the job that the employer registered). You will probably uncover additional objects/properties/relationships as well.
At this point, you can begin prototyping interfaces on paper (registration screens, search screens, etc.).
It's doubtful you will get all of the requirements/design down on the first try (which is deemed the waterfall approach). Many developers have found that a more iterative or "Agile" approach works better where you attempt to deliver a minimal solution at first and then build on that in small incremements that are reviewed regularly by stakeholders.
In my personal experience, I like to get as much defined up front as possible without writing a book about it. Then I like to start prototyping and building on those prototypes until we eventually have a solution that meets the needs of the person/group requesting the solution.
Assuming that you'll be using something along the lines of PHP to write your website I would highly recommend the book Build your own Database-driven website using PHP and MySQL. The book walks you through creating a simplistic joke website, from writing the PHP code to coming up with a database schema to match your requirements.
Eventually, requirements are going to be what drives your design. It's easy to say that you're going to create a "Job Search site" but what do you really want it to do? What does the user want from your website? What inputs and outputs will each part of your site use? How will businesses interact with your site? Who will moderate this?
Unlike the other comments I wouldn't recommend getting too formal when you're dealing with a tutorial site to help you learn. At the bare minimum you need to understand exactly why you're doing this and why everything is as it is. This isn't an exercise in Project Management or Software Design Methodologies, this is an exercise in you learning basic Web Development and Database Management.
If you want to get practising on your own computer download a copy of XAMPP and start writing a couple of PHP scripts, using phpMyAdmin as a means to access your database. Given a week of working through examples on the Internet and through connecting, reading and writing to a database through PHP you'll learn to appreciate what a database truly does for you. There's a reason Database Administrators get paid so much for the work they do!
If you're looking to write a commercially viable job search website I would recommend that you read up on some database theory as well (Google database theory lecture notes and you'll find a plethora of resources). A database is for life, not just for Christmas, and you'll need to keep that database running smoothly if you want your website to run without any hitches.
Good luck with your job search website!
Start with brainstorming what data you will need to store for the project. This could include:
Of course any actual web app would end up with quite a few more tables then this, but it's a start. I am just making this up. If you have specific functionality you want to include, or extra business logic then you should think about that now.
So starting with those three, we might create tables like this:
users
==============
user_id (pk)
first_name
last_name
email_address
password
company (fk)
jobs
==============
job_id (pk)
user_id (fk)
title
description
job_categories
==============
job_category_id (pk)
name
companies
==============
company_id (pk)
name
street_address
country
province
postal_code
phone_number
website
Depending on what type of database you use you man need a job_to_categories table to store the relationship between jobs and categories. You will also need to decide what data types to use for each table field. For ids I recommend unsigned integers. A 'text' type would work well for the job description. The rest could probably use the 'varchar' type. Since I don't know what type of database you're going to use I won't go into specifics.
Database design is a big topic that really can't be glossed over in a stackoverflow answer, or by reading a website or two.
As far as layout and design of the site, that is very subjective.