Thursday, 26 December 2013

PROJECT IDEAS

INTRODUCTION:
The gap between industry requirements and academic input imparted to students does not seem to be decreasing for various reasons.
Information technology (IT) Industry looks primarily  for strong basic concepts, initiative, analytical mind, ability to work in group and good communication skills in CSE /IT graduates from academic institutes. A good project work, an essential part of curriculum,  provides opportunity to develop and demonstrate the desired skills.  However, students because of improper and insufficient guidance end up taking projects that do not add much in their development. How to change it? This is one of the ways I am trying to make my small contribution and in the process  bridging gap between industry and academic.

Project Ideas

A large number of commercial IT applications (Bread & Butter Applications of Organizations) can be subdivided in broad categories as  described below.  Each of these, in its basic form  is a candidate for school   project in computer subject; and when scope includes features as required for “real-life” and enhancements, both described herein, these become suitable forcollege / Group projects in Information Technology / Computer Science stream.
  1. Directory Applications & Search
  2. Reminder Applications
  3. Reservation Applications
  4. Receipt & Issue Applications
  5. Routing Applications
  6. Games & Quizzes
  7. Expert Help
  8. Utilities & Tools
  9. Interfaces with other devices


Directory Applications & Search

Basic Project: Develop an application that accesses a file (or table) that contains details of a large number of items (objects) and retrieves information as desired.
(Interesting variations for Advance Projects / Group Project are indicated later in this page and in section on Group Projects)
Illustration: In a college or school we maintain a record of all students with a number of information – student’s full name, parents’ name, local address, contact ph. no., enrolment number, year of admission, class, section, etc. At times, we have enrolment number and we want to get details like name, class and section of the student. During emergency, we want to contact his family. Based on his / her name we want to get ph. no and parents’ name for contacting.
Explanation: Basically, in this category of applications, a list of information about an object is kept in a data bank (Directory). User accesses system to get some or all the information of an object.
For example schools and colleges maintain student record based on enrolment number. There may be interest to know details of a student with a given enrolment number.  Car service companies maintain owner details. When service gets done they access this data bank using vehicle number to get an owner’s contact phone number to inform him/her.  Food stores / departmental stores maintain product details in a Directory and this is accessed to get price for billing based on product number appearing on the product.
The information gets accessed in many different ways. We know the name of a student and want to know in which class and section he/she studies. In retail store, product code may not be clear but we need to know price for billing. Check-out person enters product and company name to get details. In Library we enter an author’s name to know all books written by him / her and kept in the library.
All these are examples of a search on a file (table) to pull out details of an object. Challenge lies in making an efficient search. Sometimes database is very large (as in retail stores, telephone directory) and in many cases input for search may not lead to precise pinpointing to desired record, as explained in the posts below. ♣ ♣
Examples of Directory Applications & Search suitable as Computer Projects
  •  Product & Price Information
  • Student Information
  • Subject / Examination timetable
  • Friends Information
  • Address Book
  • Science Club member list / List of Society Members
  • Conference / Seminar registration details
  • Book Details in a library
  • Doctors and their specialties in a hospital
  • Colleges of choice
  • Job availability
--------------------------------------------------------------------------------------------------

Reminder Applications

Basic Project:
(Interesting variations for Advance Projects / Group Project are indicated later in this page and in section on Group Projects)
Develop an application that accesses a file (or table) that contains details of a large number of tasks /events (objects) and WHEN action is required on these; and retrieves all those objects that are due on a certain day/date or during certain period.
Illustration: Most of us are familiar with “To Do” or “Reminder” application on our mobiles. We maintain birthday date of our relatives to wish them on due date. We would like to keep record of duration (start date and last date) during which, say, we want to get our motorbike serviced. We do not keep a fix date for servicing. Some of us like to get reminded every Monday of a month for a visit to a select temple. We want application to tell us all the tasks due on a given date, e.g. today or tomorrow or some future date.
Explanation:
Reminder applications are quite similar to Directory Applications except for differences mentioned below
  • List of objects maintained in Directory Applications does not change drastically over short term. Such lists are called master files. We access these list typically using some object id (identifier) e.g. student roll no, product number etc. Accessed information is mostly used for further processing for example for billing, for sending report card to student’s address.
  • Aim in reminder applications is to understand what is due today / tomorrow or in some period. So dates associated with objects are items of focus.
  • List of tasks (objects) generally changes more frequently. Hence facility to add new ones and delete others is an essential requirement.
  • Time of action may be a single date or a period during action is expected to be taken. It is not necessary that regular maintenance service of AC take place on a definite day; it is fine as long as it takes place sometime during a defined period.
  • Some “to do” activities may be recurring at fixed interval.
  • Applications use dates of interest for retrieving records of tasks that have  action dates matching with dates of interest.
Examples of Reminder Applications suitable for Project Work
  • To-Do list
  • Patient Appointments today / tomorrow for a doctor
  • AMC of household appliances like Water filter, AC
  • Birthday / Anniversary dates
  • Marketing calls / follow-up
  • College / school calendar items
-----------------------------------------------------------------------------------------------------------------------

Reservation Applications

Basic Project:
(Interesting variations for Advance Projects / Group Project are indicated later in this page and in section on Group Projects)
Develop an application that accesses a file (or table) that contains location (or position) details of a large number of items (objects) and retrieves information to show booking status of an object. Sometimes we want to see all objects of same status.
Illustration:
When we want to go for a movie, we check for availability of a ticket. This requires telling movie name, show timings and date to booking person. He needs all these three information to refer to proper seat chart where each seat is numbered and carries status as booked or not-booked.  He is then able to answer if any seat is available or not.
Explanation:
Reservation applications maintain unique seat number and its status for all the seats. Status value shows booked or not booked. This is indicated by using some flag with two values (yes – available/no, booked or not booked). Based on value of flag, it is possible to find availability. What is crucial is to understand how we differentiate seat status of one day from another. In case of train reservation, train number and class of travel (for example AC 3 tier, Sleeper) is required along with date of travel to refer to proper seat chart.
Flag status is set by actions of cancellation and booking. Therefore availability program generally kicks off a reservation program if an object is available.
Examples of Reservation Applications suitable as Computer Projects
  • Movie Ticket booking
  • Bus reservation
  • Rail reservation 
  • Library Book availability / blocking
  • Appointment scheduling with a doctor / dentist
----------------------------------------------------------------------------------------------------------------------------

Receipt & Issue Applications

Basic Project:
(Interesting variations for Advance Projects / Group Project are indicated later in this page and in section on Group Projects)
Develop an application that handles receipt of an item in a store and issue from the store. System should be able to provide information on all items received and / or issued.
Note we are not covering the applications where items are sold and not expected to be returned.
Illustration:
A library keeps a number of books which are borrowed by readers and returned back after reading. Library needs to keep track of all books which have been issued but not returned back. Also it needs to keep track of receipt and issue of books to keep control on stock of books and answer a question on if a book is in library or issued.
Explanation:
In this category of applications, a product kept in store is given out for some time and expected to be returned. Let us first consider the simplest form where only one copy of an item is kept.
Product directory application talked elsewhere is a component of this application with a small modification.  Additional information fields are needed to be added for each item for tracking movement of item in the store.  Additional information is kept on date of latest issue and date of last receipt. To record receipt / issue, directory database is accessed to retrieve information of a product based on its id. If it is OK then we accept date of receipt or issue as the case may be and save the date information in the same table (file). Whenever product information is retrieved we get to see latest issue (if any) and last receipt date. All those cases where issue date is nil or where receipt date > issue date, the product should be in store. And where issue date > receipt date, item is issued out and yet to come back.
This is easy to build at school level.
Moment we want to handle multiple copies of same item   single file (table) is not sufficient.  Directory file is still required but we need to add a file (tables) with  unique ids for multiple copies of each item which also holds record of issue / receipt dates. Note dates are no more stored in Directory file
If we want to know who has been issued, we need to add a file (tables) on borrowers and capture borrower id and store alongside issue date. 
Examples of Receipt & Issue Applications suitable for Project Work
  • Library
  • Video Library
  • Tools issue in a factory
--------------------------------------------------------------------------------------------------------------------------

Routing Applications

This class includes various applications where an object (a person, bus / vehicle) is required to visit a number of points (locations) for some purpose e.g. collection or delivery.  Where a student has studied OR (Operations research), temptation would be to use some algorithm of Traveling Salesman problem (TSP). Ask any courier delivery center, administration manager of a college responsible for buses or Mumbai Dabbawalas; they would not have heard about TSP yet they go around efficiently doing their job. They break the problem in smaller part and then think of route therein.
For example, a Courier company assigns a boy for a particular area who takes responsibility for collection and delivery of packets in his assigned area. Based on knowledge of routes in his area and collection / delivery points, he makes his travel. Therefore critical information used is pick-up/drop points and route in the area / locality. Display of this information on a map with route details helps a supervisor in planning the distribution routes of the day.
Route network does not change on daily basis but pick-up / drop points change more often in case of courier than in case of a school bus service. For courier boys, the solution is needed every day, but for routing of schools / college bus exercise is done once or twice in a semester.
This is an interesting application area that requires interface with a map (e.g.  Google Map) data.
Examples of Routing Applications suitable as Computer Projects
- Delivery of post by a courier / postman ♣♣
- Pickup by School / College bus
- Home Delivery by Provision stores / Food stores ♣♣

---------------------------------------------------------------------------------------------------------------------------------

Games & Quizzes

GK (General Knowledge) Quizzes
In its simplest form a question is posed and answer is supposed to be guessed. Guess is compared with internally stored correct answer. If these two match then right answer has been guessed and next question is asked.
If guess is wrong then what next?
Game designer can decide to build any of these alternatives.
  1. To move to next question, regardless guess is correct or not
  2. Give another chance(s) for guessing
  3. Give a hint and allow another attempt
  4. Give more  hints and allow attempts
In (a) and (b), in simplest form a single file or a table is sufficient where each question is identified with a number. Questions are so selected that each of these has a single numeric answer. This allows easy comparison of guess with correct answer. This kind of Quiz program can be easily prepared by senior school going students.
When correct answer can also be a single word or a number of words or can have multiple correct answers, comparison with a guess becomes more difficult to program.  Showing of multiple hints requires a separate file from question file (or table). Questions can be classified in different categories e.g. sports, capital cities, currency, mathematical puzzles and player can be given choice to select any of the defined categories.  Quiz is now larger in scope and worth trying by college students as a project work.
Board Games
A number of games like Snake & Ladder, Ludo, and Monopoly  fall in this category.  We can design an application to play such games on a system. Let us consider basic structure of a Snake & Ladder game. It has a number of squares (cells) that are numbered. Aim is to reach destination (last square -top left) as quickly as possible. A dice is rolled by a player to find how many squares his token or coin can move from present position.  Some squares have ladder that allow you to reach destination faster by jumping over intermediate squares. However if your token lands, upon move in a square with snake mouth, token slips down to a square at its tail position.
A Snake & Ladder Board can be visualized as shown below. Black arrow is a ladder while red arrow is a snake. Square with number 3 has a ladder starting that takes you to position 14.
Trick here is in storing information with each square in a Directory if it has a ladder or snake mouth; and if it is there, where would token / coin move to. When we roll a dice and as a result token moves to square with number 22 system uses additional information of -7 (a snake) with this square. As a result token is brought down to 15 (22-7) and displayed.
Snake & Ladder application thus requires
-          Showing a graphic image with snakes and ladders with squares for cell number. Internally, in program, it corresponds to a different arrangement of squares.
-          Accepting input (result of rolling of dice) from a user and  using that to show movement of a token to new position on the board
Movement of token can be shown square by square or directly to final square. When END is crossed there can be celebration in some form e.g.  music, clapping sound. The game can be modified for play of more than one player or play with computer where computer can be programmed to generate its move using a Random function.
Think how many snakes and ladders should be on a normal board for lot of fun and what should be their length. ♣♣
How this can be found? ♣♣
-----------------------------------------------------------------------------------------------------------------

Utilities & Tools

When we have developed a system and deploy for use we may use some utilities to prepare and transfer data from existing applications to the newly designed system. Alternative to not using existing data would be to re key-in data and that could be a big pain depending on number of records involved.
For example, in many colleges list of students is maintained as an Excel file. For a Student Records Application, we may use some or all of the data from Excel sheets to populate our own files (tables). The data may not be in same order as we want for our table; it may not be in same format e.g date of birth may be stored as dd/mm/yy while in table it is required as ddmmyyyy; phone number is now stored with std code separately; and like. This reformatting of data is achieved with the help of  a program that we call a Utility program.
Sometimes we may built validation checks in the utility program to ensure that we collect clean and sensible data for new application. This complicates Utility Program and decision needs to be made on how to handle erroneous data.
These can also be attempted as Computer Projects by college students.
-------------------------------------------------------------------------------------------------------------------

Interfaces with other devices / applications

Many  applications require interaction with other devices for data capture and message exchanges.
For example:

  1. Weighing  machine: Very common to see in grocery stores for capture of weight of a product.
  2. Id card reader: Quite often seen in a library.  It can be as simple as bar code reader to  some magnetic strip /RFID /  smart card reader
  3. Finger Print Reader: Generally used for attendance recording and for access control in secure areas
  4. Google maps: to show location on a map (pl see page on Routing applications)
  5. Bank card: for approval of some expense transaction as in shops, cash withdrawals in ATMs
  6. Mobile:  for communication of some message from a software system to mobile and vice versa
In case of (1) to (3) a device sends a signal to a computer via a port used for connection. That way, relevant data be it weight of a commodity or student number is captured by the application program for further processing. It is no different from capture of same input from keyboard. However, the program that runs in device for sensing weight or id is an interesting microprocessor application; also a resident program in computer which constantly looks at the port for presence of data/message from device and hands over data to application program. College students  can attempt  development of these interfaces in various computer projects .

FREE HIT COUNTERS