Archive for the ‘Projects’ Category
I have added a new page on Open Source software that you may find useful. As you would see from this list, we have Open source s/w alternative for most of our needs/applications.
If you have interest to work on Open source s/w projects, visit Google site http://www.google-melange.com/.
Computer Society of India has again invited proposals from students and young faculty members. Last date for submission is 31 Jan 2014.
Please see full details in CSI Communications, Dec 2013 issue.
I have updated the page on Group Projects to share my thoughts on how members of a group should divide project work among themselves and what approach they should follow.
Suggest all those who are attempting working as a group project should read this page for effective learning.
I have created a page on the site to provide background details of another project from the academic environment – an environment very familiar to college students and faculty.
This system really benefits from web-based environment and is a good example of decision support system. Those who enjoy algorithm design have opportunity to create a suitable heuristic for planning phase. ♣♣
Surprisingly this project is quite similar to Group Project-3 as far as processing of attendance is concerned, if you view each teaching session as one internal assessment exam. Feature required for capture of attendance data provides opportunity for investigation of different input alternatives.
Major difference with Group Project – 3 is in difficulty in capture of attendance data and its entry. Imagine load of entry of attendance data every day by a faculty for subjects taught by him /her. Assessment marks are entered only 3-4 times in a semester and hence online entry for each student’s mark is not a big pain. Question is how you make capture of attendance data easy and fast. Let us look at some alternatives and each of these gives rise to a new variation of group project.
Alt 1: In simplest approach, manual attendance records may be sent to a data entry section where a data entry (DE) person can enter attendance data of each student. This is identical to entry of marks by a teacher except that it is entered by a relatively lower paid (DE) person. So entry screen developed in Group Project -3 for capture of marks is useful here as it is, with suitable change in field names. And instead of marks, P (Present) or A(absent) is entered. Number of Ps gives attendance (Final Mark) in the subjects.
How can we really reduce entry effort?
Alt 2: It is similar to Alt 1 except that some effort can be made to reduce data entry effort by manual entry of only those present or absent depending on which number appears less in a class for the particular session; and system asked to fill the balance by appropriate attendance value (P or A). How will you implement this logic?
Alt 3: ♣♣ This implementation requires use of some automated input devices e.g.
- If a class room is equipped with a biometric access device (e.g. finger print scanner) then every student when he/she walks in, can be asked to give thumb scan on the reader for recording attendance. This scan at a later time in the day can be compared with master record of thumb impressions of all students of a class to get attendance. This is a fool proof method to capture presence of students in a class. How do you capture details of subject and faculty that taught the subject in that period for which attendance is captured? The days when scanner is not working will require capture of attendance by alternate methods (Alt 1 or 2).
- Optical character recognition is another possibility. A form can be used to submit attendance by a teacher as is done for giving answers in many competitive exams.
- Students are given ID cards in most colleges. This can be used to capture attendance provided suitable card (with bar code or some proximity feature as in RFID/magnetic strip/smart card) is used with a reader installed at the entrance of a class room.
- What else? Use mobile? Every student now- a-days carries a mobile. Can we use NFC feature of new mobiles?
Note: Alt. (c) and (d) may capture erroneous attendance. Why?
This is an interesting and useful computer project for CSE / IT college students. Many useful enhancements have been suggested at the end as Project ideas. However, before reading further, it would be worth reading Gr Project 1 – Develop a Computerized System for a Battery Dealer, for better understanding of this project idea.
Engineering colleges conduct internal exams (IA) generally three times in a semester for each subject. A faculty typically keeps records of marks of each internal exam in an Excel file. On completion of third internal exam, final internal marks are calculated. Sometimes it is merely an average of the three internals. In most colleges it is taken as an average of the better two out of the three internal marks. Students would be delighted if final IA mark for a subject is taken as best of three internal exam marks.
The goal of this project is to create a system that will capture IA marks, calculate final marks and print reports for display on notice board. HoD and Principal also like to see these marks hence a multi user system that will allow each faculty to enter marks from her/his room and others to view should be of value to college.
Let me share some details of the desired system
Expected Users of The System
- Principal and HoD
Functional Requirements of the system
- Should be able to enter the marks of all students in his/her subject
- Should be able to modify the already entered marks
- Should be able to view the marks of a particular student in all subjects of the semester
- Would like system to calculate Final IA marks and also list top marks scorers & students below average
- Students should be able to view their marks and marks of other students in their class.
- Principal and HoD
- Should be able to view the marks of all students in the institution : but should not be able alter any marks
Software Requirements Specification
As suggested in Gr. Project -1, requirements should be detailed first. It should be clear what all details will appear in each information output. Then identify inputs required.
- The processing logic should also be identified. There should be clear understanding on how final IA marks will be calculated. Remember to handle cases like a student absent in one of the exam.
- How would you like teacher to enter and modify marks – one student at a time or many students at a time?
- What will you store as marks for students who do not appear in exam as against those who get zero in exam.
- We can view system modules as following
i. Master data – maintenance of student, faculty, course details
ii. Marks entry – entry and modification of internal marks by each faculty
iii. Reporting and inquiry – Marks reports for display on notice board, knowing marks of a particular student, his other marks, better students in a class etc.
Database design and development
- Attempt ER model to identify database tables. What will be DB structure to store marks of a subject? Also for defining teachers for a particular subject as only those who teach will enter marks of their subject; others should not.
- Now identify programs to populate tables. Do not forget validation checks.
- Identify programs / SQL scripts for query and reports
- Do not forget to design a menu structure to link all programs and access as per entitlement.
- Max marks may not be same in each internal exam. A teacher may set paper for 20 marks in first internal exam but may set next two exams with max marks as 50. Understand how final IA marks are calculated in such cases.
- Different calculation procedure for arriving at final IA marks. It may be a simple average of the marks of three internal exams. Even number of internal exams may vary from time to time. Sometimes teachers add grace marks to average and derive final IA marks. How these flexibilities can be provided?
- A student may have temporary Id till university issues Enrollment / Regn. number. System should keep record of both.
- If a faculty resigns or falls sick then some authorized faculty should be able to perform his / her actions.
- If your college desires to use this application then we need to provide for the additional functionalities, e.g.
- Backup and restoration of application data
- User registration and access control – allow access to only those who should have access
- Ensure that no one is able to modify marks after final IA marks have been decided.
- Only eligible students should be considered. Those who have not paid fee, dropped out / rusticated should not appear in final IA list.
- Parents may like to look at marks over internet. Provide for web-hosting of marks.
DSIR, Ministry of Science & Technology has announced a fellowship scheme that can get Rs 10,000/- for project work undertaken as part of BE / MBA studies by a student.
Pl see more details on CDC site (http://www.csi-india.org/web/csi/project-for-students)
Project -Develop a Computerized System for School Bus Operations
Note: Advisable to read Gr Project 1 – Develop a Computerized System for a Battery Dealer
for understanding of related technical terms and stages.
Introduction: Many colleges and schools use buses to pickup and drop their students. We can think of an application that is mobile and a computer based for managing operations.
System Scope: Let us define it as
System will have functionality for the following:
- Students pickup and drop
- Assignment of Student to Bus Route
- Bus Planning – which all buses to run on a route
- Support to Bus Controller for managing operations of bus
System will cover
- Dealing with students of only one educational institute,
- A fixed number of buses that a school has and known in advance.
System will have following technical feature
- SMS messaging to students and parents
- Will use GPRS to inform bus location to Bus Controller (BC)
Explanation: A Bus Controller is someone from school side responsible for day-to-day operations of bus services.
Step 1 – Define user requirement
Let us group user requirements as per functionalities. This helps in identification also.
- a. Students pickup and drop
- Students should get a sms 10 minutes before the arrival of bus at their pick-up point
- Parents should get to know when bus has reached the school
- Similarly, parents should get to know when a bus with his ward leaves the school
- Also, parents should come to know 10 minutes in advance of bus arrival at drop point so that they can reach for pickup, if required.
- Students and their parents should be able to indicate mobile number to Bus controller on which they would like to receive the message.
- b. Assignment of Student to Bus Route / Bus Planning
- Bus Controller should be able to find number of students in different areas for pickup & drop for assigning buses on a route
- During the session, if a student changes his / her residence, new address should be considered for bus assignment
- If a bus breaks down, he should get help in revising the schedule and allocation of bus
- c. Support to Bus Controller (BC) for managing operations of bus
- BC should get status of every bus as it moves from one major point to another on its route
- BC should be able to keep record of each student that will make use of bus facility. This will also keep record of his pickup and drop point.
- BC should also be able to keep record of different buses school has and their seating capacities.
- BC should be able to keep record of different routes.
- BC should be able to define which bus (buses) will run on a specific route.
Step 2 – onwards: work out as in case of Gr Project 1.
Project – Develop a Computerized System for a Battery Dealer
Note: Battery Dealer – A shopkeeper who buys batteries from manufacturers and sells to vehicle owners.
System Scope – This defines what all areas will be covered by the computerized system. This has direct bearing on the amount of effort and time that will be required for the development of system.
Here we define it as.
System will have functionality for the following:
- Customer servicing on price and availability of battery for their vehicle
- Follow-up with manufacturer for replacement of defective battery
- Remind customers for replacement of battery in time
System will cover
- Dealing with only one battery manufacturer ,
- and for customers of vehicle of one type (e.g. car) supplied by only one manufacturer (e.g. Maruti).
System will have following technical feature
- Will be a single user system for use by the Dealer in his shop
- Will be an online application but not available over web to customers
Let us look at steps in Design and development of this application.
Step 1 – Define user requirements
- A Dealer should be able to find price and availability of a battery when a customer calls or visits the shop.
Customer may call to find about
- Battery of a particular type
- Battery for a particular model of car (e.g. WagonR)
- Whenever a defective battery is found, it is sent to manufacturer for replacement
Dealer should be able to keep record of date when battery sent for replacement and find out if replacement received or not
- New batteries are expected to last for a defined period, typically 3 years. Dealer should be able to send advance notice or call vehicle owners to advise timely replacement of battery.
Notice Reqr (a) is of Directory & Search class, (b) is of Receipt & Issue class and (c) is of Reminder class. This is what typically happens in any application; it consists of a combination of basic structures.
Some more details of user requirements need to be collected and documented for going forward.
Because, from above statements it is not clear how Dealer will find out which particular battery has not got replaced. There must be some way of uniquely identifying each battery. In real-life it is done with the help of a Sr. No. that appears on a battery.
Step 2 – Define Software Requirement (SRS)
User requirements need to be analyzed, refined and documented properly for design and coding of software. It may not be possible to support all user requirements by computerized system.
Here, we need to clearly understand how different types of batteries are defined – how type of a battery is written. Is it like “AA”, “AAA” as used for our torch / TV remote batteries?
When Dealer accesses proposed system to find price of a battery type – will he also want information on different models of vehicle fitted with given battery type.
Thus, in this step we refine and show tentative format of inputs and outputs, processing logic of proposed system. We identify different data elements required and their logical grouping for processing; and validation rules to ensure accurate capture and processing of data. This is the MINIMUM detailing required to move to next step.
Step 3 System Design of Application
Having agreed on SRS with user, we move to technical aspects – design of data structures, system architecture, detailing of object model – class /modules – programs, coding structure and software environment to use. This is the MINIMUM students must do.
For this application it is easy to visualize that we will need data structures for
- Keeping record of each Customer details
- Keeping record of each battery type
- Keeping record of each battery movement to manufacturer for replacement
How about data structure for finding price of a battery required for a particular model of a vehicle?
Battery of a particular type can be fitted in more than one model. Just for illustration, we may find
Battery Type Suitable for Maruti Vehicles
A1210 WagonR, Ritz
B131 800, Alto, A-Star
C1234, D45 Dzire, Swift
Revisiting data structures for their suitability, we may find need to add one more (which one?).
Also in some cases, a customer may be owner of more than one vehicle. Does it impact on design? Prices of batteries get revised from time to time. How do we keep information on old price, if Dealer wants? Battery types and vehicle models also change often. Should anyone have access to this application? All such aspects are addressed in Design phase.
Step 4 Development (Coding & Unit testing)
This is the phase where actual code is prepared and tested for working. Often students jump to this phase directly and thereby show lack of understanding of system development process.
Coding must follow good coding practices and standards.
Step 5 System Testing
Once all development is over, complete system is tested with sufficient data to show that user requirements are being met properly.
The scope defined above will require effort of 2-3 students over 3 months to do a proper job.
We have not considered billing, inventory / stock recording, backup/restore, web hosting functions in scope. Including those will make project even bigger.
Let us relax constraint of a single battery manufacturer and vehicle type. Now our battery dealer keeps batteries for car, bikes, truck and other vehicles. He gets these from a number of manufacturers who have their own battery type coding style. We are moving closer to real life.
How does it impact? Also, look at size of battery data structures.
The point to appreciate is that project size grows or shrinks as scope changes. Hence a project can grow to be a large / group project or made to remain one month short project depending on what we cover in its scope.
b. Similar Applications
Shopkeepers dealing in tyres, mobiles and mobile batteries require similar application.
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?