JobShop project - notes
Let's make the UPSU.net JobShop a better place to find a job. Maybe...
20070201
20061024
Meeting: P Bednar, 1500
Meeting notes:
I am apparently probably quite capable of carrying out the coding side of the product, but PB warns strongly against failing to carry out the planning and design phases of the project fully and carefully before starting any creation.
Outline project phases:
1) Research and analysis:
- includes selection of project methodologies
- outline design of DB
- start looking into usability
- start looking into usefulness ("user friendliness")
- usability testing: RESEARCH > DESIGN PROTOTYPE > TEST > DESIGN PROTOTYPE > TEST ...... > FINALISE
- pick out suitable methodologies for this project
Focus must always be on writing up, not on actually carrying out the project!
- list key components of project - database, interface, ...? (peripheral miscellanea/etc?)
2) Organise my findings from stage (1) and begin to make a plan of how the project will be carried out, and when it is "complete" - i.e. at this stage, I should be looking at my goals and how they can be measured.
3) Execution stage - this is when I will actually be creating my project. Pay attention to adherence to the original plan - where changes are needed, care must be taken to document these changes. Careful control over versioning, good coding standards, etc, should also be undertaken.
4) Project review - did it work. did it do what it was meant to, did it satisfy the requirements of the original project brief? What changed during the development cycle? At this stage it will be important to know exactly what happened during the project, with particular focus placed on the areas of the project that did NOT go to plan for whatever reason.
5) Review how the dissertation itself went - how well I analysed the problem, how well I chose my methodology and stuck to it, and so on.
Initial tasks:
- outline areas of research needed
- research project methodologies - try to aim for a comparatively lightweight, flexible, project-orientated methodology. Likely to be needing a more structure-orientated rather than an OO approach as I don't code strict OO in PHP (although that might not be such a problem).
- PRIORITISE THE PROJECT'S COMPONENTS: which parts of the project are most crucial to the success of my dissertation?
- write up 1/2 a page about the project itself - what am I trying to achieve, etc
- and remember to focus on the write-up, not the programming!
Note:
- there are actually TWO deliverables here: my PERSONAL deliverable is "to create a dissertation", while the Union's one is "to get a better JobShop website". Note that the Union's deliverable is largely covered by my personal deliverable parts 3 and 4, but it is MUCH MORE IMPORTANT for me to be able to complete my dissertation than it is for the Union to get the Jobshop site at this time - I can always come back and finish off the Jobshop!
For next week:
- draw up an outline timeline listing basic project milestones - deadline, etc
- create annotated project draft - list steps 1-5 (see notes, above) and add 150-word outlines of what each section is likely to cover for me.
- start looking at research topics (user-interface design, etc)
- start researching project methodologies
- try and formalise a project description
20070201
(From "initial tasks", above:)
- Outline areas of research needed:
- User interface design
- Existing job websites
- Key elements
- Analysis of,
- Reasons for existence,
- Usability
- Popular layouts
- Data organisation - how can you search for certain information, and why is that?
- Data collection - what information do they ask for from you, what information do they list about jobs, what information is protected and why?
- Critical analysis - why can I do better? How can I do better?
- WHAT IS MY UNIQUE SELLING POINT ("USP")????
- Website is low maintenance
- Easily moderated and managed by one person
- Information - statistics, satisfaction, members and visitors should be easily available
- ... and downloadable - e.g. as .csv
- Can MySQL/Mambo/Apache be relied upon to handle a site such as this? Consider the main load factors.
- Research project methodologies
- Ideal: a lightweight, flexible, small-team- and project-orientated methodology
- Prioritisation of the project's components: what can be considered superfluous, vs. what must be achieved to consider the project a "success"
Additional thoughts:
- Sketch out some ideas of functionality: "This project must be able to..."
- For users: allow easy searching of jobs, filtering of information
- Tag clouds
- Multi-dimensional searches
- Interface and data retrieval customisation
- Saving and e-mailing of information - "send this job to a friend", etc
- Instead of a "daily jobs by e-mail" digest, how about an RSS feed? (ref: related to "smart job searches", below)
- Organise into a structure (tree, for example)
- Start considering how this structure will be reflected in the URL structure
- From this, we can infer some things about functionality
- For example: sample URLs:
- /.../employers/ibm/cloud <- listing of jobs by employer formatted as a tag cloud
- /.../employers/ibm/az <- listing of jobs by employer formatted as an A-Z listing
- /.../employers/ibm/az/rev <- listing of jobs by employer, Z-A
- Why do this? It helps create memorable and easily bookmarked URLs.
- Drawbacks?
- Only easily suited to single-dimension searches - see "deep searching" below for multi-dimensional search help
- "Collisions" - we need to ensure we don't have two employers with the same name listed (as this is eminently possible).
- Deep-searching: how can we search within these results for, for example, a certain type of job, pay scale, etc?
- Can we allow complex searches to revert to a more system-focused URL, for example:
- /.../search?employer=ibm&jobtype=fulltime&wages= hourly&minwage=505&maxwage=&location=&...
- Search references: should be plain English wherever possible!! For example, if I type "bar tending" into the search engine:
- The URL should reflect this, e.g. "/.../jobs/bar+tending"
- Search would ideally have the ability to list synonyms for the job I searched for, configurable through an easy to use interface
- e.g.: I could tell search to suggest jobs listed with "bar" and "tending" if the search query contains the words "bar" [and/or] "work" (reference: Apple Mail and iTunes smart playlists)
- This would be configurable by the manager of the website
- Oooh... Smart Job Searches! Would be very handy:
- As above, reference Apple Mail/iTunes smart searches
- Create your search, save it to "my favourite job searches" with a custom title
- When you sign in, you can click a link to view your search
- Should be able to create an RSS feed
- URL elements:
- UID (MD5'd)
- search ID (MD5'd)






