CSE 3310 Term Project
Term Project Objective
Practice general Software Engineering life cycles of Specification, Design, Implementation and Testing via programming an Android application. This class will be utilizing a Plan-driven Software Engineering approach and not an agile methodology.
Project Requirements
- You may select any development tool or environment however you must develop the project yourself. It is not enough to just copy and paste a project from somewhere else. This does not mean you cannot reuse any existing code. Many software engineering products builds on some existing code. But it is important that you clearly document which parts are yours and which parts you reuse from another source. If in doubt, please run it by me or TAs first!
- You must provide the necessary software required to run/test your application.
- Project will be completed in teams, no individual work is accepted. All team members are expected to put equal time in handling the allocated tasks. In case of any friction or miscommunication, please inform me immediately. I will conduct a peer-review later in the semester to evaluate all team members’ equal participation.
- No copyright violations for any part of “reused” code, if any.
- Provide appropriate references when using other people’s work.
- All team members must take part in presenting a portion of your project. Presentation times are specified in the class schedule.
- The class TA's primary responsibility is helping you with your project. You can visit them during their office hours. All contact information is available in the class syllabus.
Required Progress and Deliverables
- Increment 1: Use Case diagram(s), requirements
- Increment 2: SRA document (updated requirements, UML diagrams); Submit hardcopy of SRA in class plus PowerPoint presentations by 2 team members. (note: Design and implementation should begin the first week in October. You will submit and present your SRA on or about the 8th week of class.)
- Increment 3: Test Plan Doc. + Peer review
- Increment 4: Final product demo and course binder: Due 9 Dec 2015 (Final product: i.e. Project demo, source code, test plan and external documentation also referred to as user manual. Details what to hand in will be provided in class)
Project Assumptions
- Ignore managing income from advertising companies such as an accounting system, credit card payments, bank accounts, etc.
- Assume all users over the age of 18
- Ignore any legal issue unless you decide to make profit from your project
- Ignore Post project maintenance issues
General Comments and Guidelines
- All team members must participate equally in all stages of the project. A peer review will be conducted in early to mid November to validate equal participation.
- All members must participate in presenting a segment of the project.
- Establish a weekly meeting with your team members. Typically a one-hour session is sufficient at the start. Make sure all members can attend and are committed to this.
- Either select a facilitator for your team or rotate the responsibilities of the facilitator. Typical duties of a facilitator are: organizing meetings, coordinating efforts among team members, communicate with the course instructor or the class GTAs, etc. Please note, you do not have to select a team facilitator, it will make communication easier.
- Research the web for existing products to help you deliver a better project.
- Please avoid any inappropriate words, pictures, actions while developing this product.
- Please utilize the class TA for any aspects of this project.
The Project!
You will develop an application to extend the class scheduler application previously created, and create a daily schedule. The application must not lose the following functionality:
- Login
- User authentication (username/password)
- Add user
- Edit user
- Remove user
- Obtain open classes from web
- Create class schedule
- Class schedule should have no conflicts--no classes may overlap
- User should be notified if classes conflict
- Remember, the university now has Saturday classes
- Users should be able to block out time on a schedule
- Classes must be arranged around any blocked out time
- If a set of classes conflicts with the some blocked out time, user should be notified
- Users should be able to store a class schedule
- Stored schedules must be reverified to make sure all classes are still available
- More than one schedule may work. Users should be given several schedules to chose from.
- Phone resource management: your app should not kill a user's phone, battery, or usage plan
The new functionality is as follows:
- Incorporate sleep/work/commute/study times
- A user may or may not have work times or study times
- The human body requires at least some sleep each night
- Not everybody needs the same amount of sleep, but assume that 6 hours is a bare minimum
- Graphical Representation of the schedule
- Users should be able to see a day at a time or a week at a time
- Users should be alerted if their schedule is not allowing for enough sleep/study time
Students may choose to create one of the following projects:
- A web application
- A iPhone application
- An Android application
Existing code bases will be provided for android applications, however the general algorithmic scheduling process can be applied to other languages.
Handy Android Resources
Getting started with Android Programming: http://developer.android.com/training/index.html
Android SDK: http://developer.android.com/sdk/index.html
Android Development Tools (ADT): http://developer.android.com/tools/sdk/eclipse-adt.html
Android Development Tutorial: http://www.vogella.com/articles/Android/article.html
Eclipse Downloads: http://www.eclipse.org/downloads/
Web Resources
Web training material by Mr. Hafiz Shiekh
iPhone Resources
Apple Developer Center
IOS 9 Developer Intro