Software Project Guide Page 1 of 14 Software Project Guide Semester Fall 2014 Created By, Research and Development section, Department of Computer Science, Virtual University of Pakistan Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 2 of 14 Table of contents: 1. 2. 3. 4. 5. 6. 7. Topics What is a software project? Purpose of a software project Should I take software project? Eligibility Criteria Guidelines to register for a Project Grading Policy Software Projects for Fall 2014 Page no. 3 3 4 4 4 4 5 Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 3 of 14 Whom to Contact? This booklet provides comprehensive details to the students who are planning to take Software development projects as their final projects. Therefore, such students are advised to go through it in complete. If any of the quires are unsatisfied even after having read the information given in rest of the booklet then students should contact to concerned supervisor. 1. What is a Software Project? At first it is important to understand what the software is? “Software” can be defined comprehensively as, 1“Computer Programs that, when executed provide desired function and performance, data structures that enable the programs to adequately manipulate information and documents that describe the operation and use of programs”. Looking at the definition indicates clearly that developing software does not mean mere development of programs (or code) rather it requires the related documents to be produced as well. To develop software effectively requires following a process. Each stage of this process culminates in one or more artifacts. Examples of software projects are, software developed for face recognition, building a Customer Relationship Management (CRM) System, Flight Simulation System, Point of Sale (PoS) System, a Web Portal, an Electronic Store Front etc. Software projects can be aimed at producing a desktop application, an embedded application (like to be used in microwave oven) or some online application. 2. Purpose of a Software Project: The University aims at producing such IT professionals who leave the impression of excellence in knowledge and skills in their professional lives. Students are encouraged to come up with innovative and unexplored ideas while addressing a problem. After having completed the project students will be expected to have the following skills, It will provide the students with an opportunity to implement the concepts they have learned throughout their degree program so far. Awareness of the latest technologies being used in the industry and more importantly the application of those technologies. Knowledge of all the formalities required to undertake a software project. Enough confidence to take the challenges of their practical environment. This definition is taken from the book “Software Engineering A Practitioner’s Approach (Fourth Edition) by Roger S. Pressman” 1 Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 4 of 14 3. Should I take Software Project? The development project is recommended for those students who have an aptitude and interest (equally important) for development. Presence of analytical skills to solve a problem is also highly requisite. If a student finds these ingredients in himself/herself then deficiencies (to a certain extent) in the areas like programming, data base and software engineering etc can be overcome but such a student will have to put extra efforts (depending upon the deficiencies) to make his/her weak areas stronger. As having ambitions only does not lead to the goal, one has to strive for those ambitions to get them materialized. 4. Eligibility Criteria No student below 1.75 Effective CGPA will be allowed to take the project title. MCS/MIT Students must have completed 30 credit hours to become eligible for taking the final project. So don’t enroll in CS619 course or drop your cs619 course if you have earned less than 30 credit hours. BSCS/BSIT Students must have completed 90 credit hours to become eligible for taking the final project. So don’t enroll in CS619 course or drop your cs619 course if you earned less than 90 credit hours. 5. Guidelines to register for a Project Please read the following to get to know, how you can get registered for you final project. First of all, you have to enroll in CS619 course in Fall 2014 semester through course selection (contact course_selection@vu.edu.pk for enrollment). Carefully read the eligibility criteria and only send a request if you are eligible to take a final project title. Otherwise drop your cs619 course. The project selection will be done through LMS. Students will be required to make groups. In a group maximum two (2) students are allowed. A student can also choose to do the project alone (a single member of the group instead of two) Students who fail to submit their final project in specified duration (two consecutive semesters) will need to take course CS619 in extra semester to continue the same project. 6. Grading Policy Students will be clearly communicated about the deliverables they need to submit on specified dates. This is important to remember that each deliverable carries a significant weightage so students are advised to take each deliverable very seriously and submit it according to the date announcements according to the submission schedule. While evaluating the students the following factors will be considered important Effective use of time and of visual aids. Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 5 of 14 Organizational and presentation skills. Seriousness and dedication of the students in meeting the announced dates for each deliverable. 7. Software Projects for Fall 2014 Following is the list of projects which have been offered for Fall 2014. Students can only select a project from this given list. Students have to adhere to the requirements specified with each project as the evaluation of the executable artifact will be performed accordingly. Next, each offered project’s detailed information is provided. Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 6 of 14 Real-Time Financial Data Warehouse The Executives of ABC University wants to know the financial condition of their organization. The executives need such a repository in which most recent data is available from different departments for analysis. For this we need to develop a Real-Time DWH having most recent data for effective decision making. A DWH collects the data from multiple operational source systems (OLTP – On-Line Transaction Processing) and stores it in a central repository, which is further used for analysis. However traditionally, the data in DWH is loaded periodically – typically in a daily, weekly or even monthly basis which means that its data is not up-to-date. The data which is saved in OLTP between those time periods (when data is loaded) is not included in reports generated for analysis from DWH. Real-Time DWH is a solution of this problem as it provides the most recent data for analysis. When any data is entered in OLTP, It is reflected in the repository of Real-Time DWH. We have to perform ETL process at the moment of insertion of any new record in OLTP. It is done with the special techniques. Pre-requisite: Student should have the strong concepts of Databases and Data warehouse Functional Requirements: 1. This is a desktop application 2. There are two users of this application, Admin and Executive. 3. Admin can add or remove any Executive. 4. Different departments in the university are using their own databases (OLTPs) to store the information according to their need. 4.1. Accounts department stores the information of revenue such as fees submitted by the students and money earned by the selling of the software products developed by its software house. 4.2. Finance department stores the information about the expenses of the university such as salaries of employees, utility bills, furniture, electrical and electronic devices. 4.3. Registration department stores the information about the student’s bio data including the degrees in which they are enrolled. 4.4. HR department stores the information about the employees of the university (Faculty & Non Faculty). 5. All the departments (above) are using SQL server DBMS. Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide 6. 7. 8. 8.1. 8.2. 9. 10. Page 7 of 14 The star schema in this application will have the multiple fact tables. The procedure of ETL will took place at the time of insertion of any new record in OLTP. For this we will use triggers. (Student can use any other technique after getting the approval from his concerned supervisor). Executive has the interface to view different reports regarding expenses and revenue. The executive will view the reports regarding expenses. For example he will be interested to see the total expenses or a particular type of expense in a particular time period etc. The executives will view the reports regarding revenue. For example he will be interested to view the total revenue or a particular type of revenue at the particular time period etc. Reports will be generated on run time on the basis of different parameters given by the particular executive. Parameters have been discussed above in section 4.1, 4.2, 4.3 and 4.4 Interface must provide the facility to Drill Down and Roll UP Operations. Tools: Microsoft.Net Framework, Java, SQL Server Supervisor Name: Shabib Aftab Email ID: shabib.aftab@vu.edu.pk Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 8 of 14 Authentication Technique with OTP One time password (OTP) is just what the name gives you an idea about a password that is only applicable for one login. The advantage of OTPs is that it proposes much higher security than static password also called conventional way of authentication. OTPs is protected against password sniffing attacks, if an hacker use software to collect your data traffic, video records when you type on your keyboard, or use social engineering, it doesn't matter since the password that the attacker gets hold on will not be valid to use. An OTP can be generated using different methods and is often used in combination with a device that is synchronized with an authentication server. Time-Based OTPs In the time-based method, a device with an internal clock generates passwords that are depending on the current time. For example, every minute a new password is generated in the device, and the same password is generated at the authentication server. When the user wants to login to a service or system, the current OTP that is displayed on the device is used. The user's mobile phone will work as the authentication device, in which the user have to enter a 4-digit PIN code to generate an OTP that can be used for login. This is done by any mobile supported application running on the phone. The OTP that is generated on the mobile phone is based on three components which will be hashed together with MD5 or any well known encryption algorithm. Functional Requirements: 1. 4-digit PIN code that the user enters. 2. A secret random number that was created during device-initialization (Init-secret) that only exists on the user's mobile device. 3. The OTP algorithm simultaneously executes the code at mobile as well as Server and generates one time password that will be valid defined session /time stamp. 4. Make log file (Data base) manage all record of specific user id. 5. After the login application operates any other operation. Application Type: It will be a native mobile application; you can use any modern mobile OS platform (e.g. Android, Apple, Windows Mobile etc) for mobile application and PHP/Dot net frame for server side languages. Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 9 of 14 The MD5 message-digest algorithm is a widely used cryptographic hash function producing a 128-bit (16-byte) hash value, typically expressed in text format as a 32 digit hexadecimal number. MD5 has been utilized in a wide variety of cryptographic applications, and is also commonly used to verify data integrity. http://www.miraclesalad.com/webtools/md5.php http://en.wikipedia.org/wiki/MD5 Algorithm [edit] Figure 1. One MD5 operation. MD5 consists of 64 of these operations, grouped in four rounds of 16 operations. F is a nonlinear function; one function is used in each round. Mi denotes a 32-bit block of the message input, and Ki denotes a 32-bit constant, different for each operation. s denotes a left bit rotation by s places; s varies for each operation. denotes addition modulo 232. MD5 processes a variable-length message into a fixed-length output of 128 bits. The input message is broken up into chunks of 512-bit blocks (sixteen 32-bit words); the message is padded so that its length is divisible by 512. The padding works as follows: first a single bit, 1, is appended to the end of the message. This is followed by as many zeros as are required to bring the length of the message up to 64 bits fewer than a multiple of 512. The remaining bits are filled up with 64 bits representing the length of the original message, modulo 264. The main MD5 algorithm operates on a 128-bit state, divided into four 32-bit words, denoted A, B, C, and D. These are initialized to certain fixed constants. The main algorithm then uses each 512-bit message block in turn to modify the state. The processing of a message block consists of four similar stages, termed rounds; each round is composed of 16 similar operations based on a non-linear function F, modular addition, and left rotation. Figure 1 illustrates one operation within a round. There are four possible functions F; a different one is used in each round: Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 10 of 14 denote the XOR, AND, OR and NOT operations respectively. Scratch the card and insert 14 digit number for card loading is normal and regular activity for mobile users. In this project user will just take picture for mobile card and it will be automatically recharged. This MD5 hash generator is useful for encoding passwords, credit cards numbers and other sensitive date into MySQL, Postgress or other databases. PHP programmers, ASP programmers and anyone developing on MySQL, SQL, Postgress or similar should find this online tool an especially handy resource. What is an MD5 hash? An MD5 hash is created by taking a string of an any length and encoding it into a 128-bit fingerprint. Encoding the same string using the MD5 algorithm will always result in the same 128-bit hash output. MD5 hashes are commonly used with smaller strings when storing passwords, credit card numbers or other sensitive data in databases such as the popular MySQL. This tool provides a quick and easy way to encode an MD5 hash from a simple string of up to 256 characters in length. MD5 hashes are also used to ensure the data integrity of files. Because the MD5 hash algorithm always produces the same output for the same given input, users can compare a hash of the source file with a newly created hash of the destination file to check that it is intact and unmodified. An MD5 hash is NOT encryption. It is simply a fingerprint of the given input. However, it is a one-way transaction and as such it is almost impossible to reverse engineer an MD5 hash to retrieve the original string. Time-Based OTPs In the time-based method, a device with an internal clock generates passwords that are depending on the current time. For example, every minute a new password is generated in the device, and the same password is generated at the authentication server. When the user wants to login to a service or system, the current OTP that is displayed on the device is used. Supervisor Name: Tanweer Arshad Email ID: as2@vu.edu.pk Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 11 of 14 Mute Me Here We face a problem of mobile ringing tone when we are at some place where a ringing mobile causes embarrassment for us. For example: while offering prayer in a mosque, attending a meeting, inside a library, inside a seminar hall etc. This application will provide a solution to this, using smart phone’s GPS, Google (or other) Maps feature as per mobile phone’s OS and development frameworks. It will actually require the user to define areas on the map, at which the smart phone shall be muted. The user should be able to use mute options (profile selection, vibration setting, sound setting, notification settings etc). This way as soon as a user walks into a building whose coordinates are defined in the application, the user does not have to bother about turning off the phone or setting silent option. In addition to location based muting, it will also facilitate time based muting. Following are the main project features: This is a single user mobile application so there shall be only one actor i.e. User, Following are the required features of this project: Location Based Muting – Application will require user to define one or more locations at which the mobile phone shall be muted. – Phone should be muted when user moves into any of the pre-defined locations and it should be automatically un-muted when the user walks out of that location. For this purpose, application must store the last used settings before muting and unmuting to apply or restore. – User should be able to define mute settings. Either full profile selection from default profiles of the phone, or define settings separately i.e. phone settings for volume, vibration, LED or backlight notification (if available in the phone set). Time Based Muting – Application will allow user to define time based muting, instead of location based muting. The time based muting shall mute the phone based on pre-defined time spans, further setting/working will be similar to what discussed in Location Based Muting section. Application Type: It will be a native mobile application. You can pick any modern mobile OS platform (e.g. Android, Apple, Windows Mobile etc) for smart phones. Tools & Technologies: Any modern tool and technology set, used for developing mobile applications based on the platforms discussed in Application Type. Supervisor Name: Usman Waheed Email ID: usman.waheed@vu.edu.pk Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 12 of 14 Bus Ticket Reservation System Introduction: A bus travelling company wants to automate its ticket reservation system to bring a change in the trend of manual ticket reservation system. This system will bring improvements in the managements of bus services. The problems with manual system is that the passengers have to stand up in a long queue to buy tickets or asking for some information. In manual system all the records are maintained in documents format which needs special place and protection to keep the saved record. A system is required to makes the reservation system easier. This system will provide various facilities like contain record of reservation, facility to check the ticket availability, cancellation and change ticket, search for the most possible prices, Schedules of bus departure and arrival on all terminals and search and choose his/her seat position and ticket payment procedure. This website will be available online twenty four hour and seven days per a week. The company also provides cargo services in different cities. Customers can get information about cargo services tariff, cargo services schedules and consignment tracking and hotel room reservation during stay on long tour for VIP customers. Actors: 1. Admin 2. Call Operators 3. Manager 4. Bus Staff (Driver, Security guard , Doctor , Bus hostess) 5. Customers(users) 6. visitors Functional Requirements: 1. System should provide facility for all actors for log into the site. 2. System should provide facility for send email/sms to all actors if they forgot password. 3. System should provide facility for register new visitors by himself. 4. System should provide facility for all actors to change his password. 5. System should provide facility for all customers to change his profile. 6. System should provide facility for only admin to add, delete and edit news and events. 7. System should provide facility for admin to reset user’s passwords. Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Page 13 of 14 System should provide facility for only admin to block, view, edit to all customers. System should provide facility for only admin to add, block, view, edit to all employees. System should provide facility for only admin to change all fares of tickets. System should provide facility for only admin to change all fares of cargo. System should provide facility for only admin to change all fares of waiting Rooms. System should provide facility for only admin to add new terminal (add new city in route). System should provide facility for only admin to generate staff salary slips. System should provide facility for only admin to view about the credit card details of customers. System should provide facility for only call operator to booking the ticket and booking cargo consignments but not confirms. Create customers account for login into the site (auto generated after booking of the ticket). System should provide facility for manager to confirm the booking after payment receives. System should provide facility when ticket confirms an email and sms send to the customer. System should provide facility for manager he creates all the tickets slips. System should provide facility for staff to check their duties time and place of duty. Each bus has total 4 member of the staff (Driver, Security guard, Doctor, Bus hostess) system provide facility for each staff member has to enter their employee id number and check his\her current scheduled. System should provide facility to only customers for booking the ticket and booking cargo consignments but not confirms. System should provide facility to customers to edit profile and change password. System should provide facility to customers to register in site. System should provide facility to customers to search reservation. System should provide facility to customers to track consignments. System should provide facility to generate the pdf for confirm ticket and confirm cargo reservation. System should provide facility to save all the reservations of each customer. provide 5% discount to all regular customers (2nd time reservation include in regular customer) company provide 10% discount to family package (if buy more than 5 tickets) Each bus contains 2 extra seats for emergency cases extra seats has extra reservation charges, 30 % extra charges than regular ticket rate. Query the buses for two weeks (Only two weeks advance reservation is available). No reservation before two days can be done. Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide 33. 34. 35. 36. 37. 38. Page 14 of 14 Cancel reservation 50% deducted from the whole amount. (Cancellation interface closed before 3 hours of the confirm ticket date and time). Change reservation 20% deduction from the whole amount. (Cancellation interface closed before 3 hours of the confirm cargo date and time). System should provide facility to stay in room during the journey for the VIP customers and the paying customers System should provide facility for book table in restaurant during the journey for the vip customers. payment is through credit card and if customer has no credit card than customer send money through easy paisa when a money transfer sms is receive by the company with customer id number and phone no than the ticket is confirm . Money is taken out from customers account after a verification call. Tools: You can use any programming language to develop this website. Supervisor Name: Muhammad Tariq Pervez Email ID: m.tariq@vu.edu.pk Research and Development Section, Department of Computer Science, Virtual University of Pakistan