AdD - An Advertising Directory

NOTE: this is the sponsored project for the Software Engineering class. If you are part of the team that decided to work on the sponsored project, then you're in the right place. On the other hand, if you are part of a team that has chosen their own project, then the rest of this page is probably of little interest to you.

1. Introduction

The purpose of the project is to give you the opportunity to practice the concepts discussed in this class. The requirements are purposely somewhat vague such that you can interact with the client (that's your instructor) to figure out the detailed requirements.

Before we get into the functionality detail, I want to remind you that detail about the programming language, the platform on which the project will be tested, unit-testing, and how to submit your work is available in the syllabus.

Lastly, the best project will receive a prize of $500 in cash, equally split between the team members, curtesy of our sponsors, Municipal Media, and theSleeples, Inc.. Your instructor reserves the right to not award the prize in case none of the participating teams delivers a quality product.

2. Acceptance Criteria

This is one of your deliverables for the project. You'll have to work with your customer - that's your instructor for this project - to develop acceptance criteria.

3. FAQ

Check here for answers before asking your TA or the teacher.

5. Project Description

Most student taking this class are too young to remember the Yellow Pages, though you can see a picture nearby.

Yellow pages refers to a telephone directory of businesses, organized by category, rather than alphabetically by business name and in which advertising is sold. The directories were originally printed on yellow paper, as opposed to white pages for non-commercial listings. The traditional term yellow pages is now also applied to online directories of businesses. -- Wikipedia

An online advertising directory is very much like the yellow pages.

There are many online advertising directories out there. You can see the one maintained by the IAB here.

Well, I want to build a better online advertising directory (OAD) so I'm asking you to write the software that allows me to do it.

Each advertiser that wants to be in the AdD can buy one or more listings in the directory. Each listing contains some text that describes what the business is about, an image and a link to the advertiser's website.

Each listing has a price, a start date and an end date.

Listing can be "regular" or "featured": a featured listing can be either "category-featured" or "home-page-featured".

A "category-featured" listing is displayed prominently every time somebody selects the category for viewing. A "home-page-featured" listing will be displayed prominently only on the home page of the directory.

A featured listing is also given more space and a better placement in the page.

If multiple featured listing are found, then they will be displayed based on a system-wide setting that allows the following: random, by advertiser name, most recent first, most profitable first.

A directory user can select a category and view all the listings in that category. If no category is specified, then home-page-featured listings will be displayed.

An administrator can create categories, modify existing ones, or remove them. An administrator can also create and modify listings in the directory and add/modify advertiser information.

When advertisers call with a question about the service, the administrator should be able to look them up by email address, or their last name, or by the name of the business, or by their phone number, or by their Facebook, or Twitter or Linkedin information. If found, then our customer service people should be able to see past listings and active listings.

The other thing that I need is some sense of how we're doing as a business. Here are some of the things I want to know as an administrator:

  • How many active listings do we have? Please break down by listing type and by category
  • How many customers did we get over the last month, three, six, nine, 12 months, since inception?
  • How much money have we made this month, last month, over the last three, six, nine, 12 months, since inception?

I assume that end users will access the directory mostly through a smart phone, though some will be using a browser on a desktop/laptop computer. The administrator will be using a desktop/laptop.

Personally I like signinig in using one of my Google accounts, but that's not the only way to authenticate the administrator before they can access their functionality.

One last thing: we'll need to talk about a deployment model that makes sense. Will I need to deploy the software every time I create a new directory? Or maybe the same software could be used to host many directories, each of them independent of others?

Here is a list of possible future enhancements:

  • A listing can belong to multiple categories
  • The admin can limit the number of featured listings that are displayed
  • Each listing can have keywords that the advertiser believes are relevant for search engines

Last update: Aug 31, 2016 Virgil Bistriceanu cs487 Computer Science

$Id: project.html,v 1.1 2016/09/01 16:36:42 virgil Exp $