* Home
* Description
* Overview
* Schedule *
* Projects
* Grades
* Discussions *
S511 Project Descriptions
For this year, teams will choose one of two projects, each of which have different
types of challenges. You need to decide on what interests you the most, and
select one of the projects. You should decide on the projects in a team and
sign up for one of the projects by the deadline of Nov 10, 2004. The projects
must be finished and turned in by the final's week, with a project open house
scheduled during the dead week. All the projects described here would require
you to do the following tasks:
- Resarch and document the resources necessary to create this system.
- Put together a design of the system (including web design, database design,
and class design if any). The design should have documentation on each of
the components you are planning to develop.
- Prepare a prototype of each of the webforms and classes, and create the
database tables as needed.
- Complete the application with a top down design - drill down to the details
as time permits.
Since we have only about six weeks, I have a weekly schedule for the project.
Make sure you meet at least once each week, and plan the week's objectives as
a team, and one of you must ensure that all the objectives are fulfilled. As
you would see, the objectives aren't much, but falling behind will cause you
unnecessary load at the end of the course.
| Week 1 (Nov 8-14): |
Project selection, Research and Documentation of research |
| Week 2 (Nov 15-21): |
Design of system, including forms, database and classes |
| Week 3 (Nov 22-28): |
(Thanksgiving week - classes do not meet) - finalizing design,
starting work on prototyping. |
| Week 4 (Nov 29-Dec 5): |
Finish Prototyping - prepare for Project open house on Dec
8. Project does not have to be complete by Dec 8, but you should be able
to show other students in the class how you approached the problem and thought
about its solution. |
| Week 5 (Dec 6-10): |
Dead week. Dec 8 is the project open house. No presentations
need to be prepared. Simply show and tell with your designs and current
versions of prototype. |
| Week 6 (Dec 11-15): |
Wrap up - finish up the incomplete code and documentation
and submit. Final submission Date: Dec 15. |
Project Choice 1: XML search engine
In this project, you need to develop a rudimentary search engine for XML documents.
You are going to allow people to "load" documents into the search engine, at which point
you will need to process the documents using any method you find suitable, to either
dump the data into a backend database, or in some kind of file storage that would
then allow the users to run queries against the documents. This project will give
you the experience of incorporating both the things we learnt in the first half of
the course and what we are doing now with developing applications.
Challenges that need to be resolved for this project:
- Loading the documents. You are welcome to try a generalized search engine for
many XML documents, but start with the simplifying assumption that the searches
will always be on one document, which means you will be able to upload a document
(or ask for a URL) and process the document from the file uploaded or the URL provided.
Once the document is retrieved, you will need to load your database with the data
present in the document. You may ask for the user's assistance with this process,
by asking for which parts of the documents are searchable. You will need to decide
on a user interface that would represent your thought process for coming up with
a solution to this problem, and use this user interface to load the data into your
repository, either in a database (recommended) or in the file system.
- User interface for querying You want to make sure that the user interface
is as intuitive as possible for the user. Ask the user for the file or URL to
upload, then possibly select the tags/regions that he/she needs to search on, and
then display an interface that allows users to perform the search, and finally,
something that shows the results of the search
- Translating the user specified search into a query for your repository:
Whatever the user specifies in your search interface, will now need to be
converted into a query and run against the backend database. This translation
process is one of the biggest challenges in this project.
Complexity Variations
- Base level. To start with, create an interface that allows users
to upload just one file in a known schema, create a static user interface
for searches and perform the searches. For example, create a static user interface
for searching the Bosac
Shakespeare Collection. The user can upload one of the plays into your
system, which can then be searched using your search interface.
- Challenge level 1. Change the complexity then to dynamically generate
the search interface based on input from the user regarding which tags can
be searched.
- Challenge level 2. Then allow multiple documents from the same schema
to be uploaded and searched. A new document uploaded will not clear the database
but will add to what has already been uploaded.
- Challenge level 3. You can make your searches intelligent by using
an ontology (a set of pre-defined relations and associations that can be derived
from the data). The allow queries using these associations. If any of the
teams want to achieve this challenge level, I would be happy to point you
to papers that have such techniques.
Project Choice 2: Scheduling
This is one of my personal favorites. Here the task for you is to schedule
several presentation sessions with a number of presenters into a schedule with
times and rooms where presentations are to be scheduled. You will be provided
with the data that contains information on the rooms and the time slots, and
also data about the sessions and included presentations. You will need to use
automatic as well as manual methods to create and update the schedule.
Challenges in this project
- Developing a user interface that makes it simple for administrators to generate,
and subsequently modify the generated schedule, as well as view the schedule
in some logical form (e.g., by day, as a calendar, etc.)
- Developing a method using which the sessions get scheduled, ensuring that
the same session is not scheduled in two different timeslots, as well as each
timeslot does not have more than a set maximum number of sessions.
- Ensuring that if two sessions are scheduled in the same time slot, the same
presenter does not belong to both these sessions.
- Generating different views of the schedule, e.g., by type of sessions, by
presenter, etc.
Levels of complexity
- Base level: At this level all processing is user-driven. Everything
happens through the user interface that allows users to create and modify
schedules.
- Challenge 1 - automatic random scheduling: At this level, you will
automatically generate timeslots for presentations, using a random method.
However, you will still need to ensure that one presenter is not scheuled
in two concurrent sessions, and you adhere to the generic constraints regarding
the number of presentations per time slot and so forth.
- Challenge 2- Preferred times: Usually early morning or late in
the day presentations are not very popular. At this level you will need to
ensure that you schedule the most popular presentations (presentations that
receive preferences from moost people) are scheduled during the preferred
timespots.
- Challenge 3- rating-based-scheduling You can use a "rating" based
scheduling where ratings are available for all presentations. This rating
data can also be used to schedule the presentations, by placing the most highly
rated presentations to the preferred timespots.
Those of you interested in working on this project, here is the DDL (data description
language) with all create table statements, create index statements that builds
the database. It does not have the data - once you create the database, I can
export the data to your servers directly from mine.
Scheduling DDL file
To create the database, you will need to do something like:
osql -S bl-uits-clark -E -i scheduling-ddl.sql -o scheduling-ddl.out
Then look in the scheduling-ddl.out file to see if any errors were generated.
If necessary, I can give you an algorithm that ensures the criteria in Challenge
levels 2 and 3.