Project
The goal of the course project is to give students in-depth experience developing a web application that will be used--often by fellow students. Beyond solid implementation, completing a successful project also requires effective written and oral communication skills.
The project will be implemented as a team. The team will write a large, useful web application. The web application will adhere to the design and software engineering principles discussed in class. You may want to use open-source resources and expand them. Starting with an open-source application will give you a good starting point and may allow you to try out some different development techniques or technologies than those discussed in class.
Deliverables
Project Requirements, Design, and Plan
The deliverable is a collection of Markdown pages in the project's git repository that describes the requirements for the project, a general design, and a work plan.
- Requirements - describe the functionality that will be implemented. Be as precise as possible. Identify the most important functionality that must be implemented. Also, describe optional functionality that will be implemented if time allows. Look at the wiki for more information about what the requirements should contain.
- Design - the steps you will take to complete the project, which will include what will be implemented and the technologies used to implement each piece.
- Work Plan - a tentative plan for what parts of the work you plan to have each member charged with doing.
Static HTML Mockup
The team will create example web pages that represent the look of the application as well as the flow and what information will be on or asked for on individual screens. Creating the HTML pages, CSS files, favicons, and graphics first and identifying any presentation issues will make implementing the web application easier. The static HTML pages are also much easier to create than dynamic web pages, which means that we can quickly create a prototype that can be analyzed for potential design and usability problems.
All the links will go to static HTML pages in your public_html directories, representing what, for example, a Servlet or JSP would display to the user.
The team will meet with our client and me as a team to present the mock-up. This meeting will also give the team a chance to ask clarification questions about how the application should behave. Based on the feedback, the team will revise the requirements, the work plan, and design document.
This deliverable includes
- HTML pages to represent most of the planned functionality, in
your public_html directories, linked from the Markdown pages.
In addition to submit buttons in forms (which won't yet work), use links to go to the response page.
- CSS files to specify layout and look of pages.
- Any images, graphics, favicons.
Web Application Implementation, High-Priority Functionality
Your goal is to create a demo-able version of the application so that the client can see what you've done and provide feedback. At this point, you'll also have a better idea of what is possible within the time constraints. Revise the work plan and design document based on your progress and the client's feedback.
To get started and to help organize yourselves, add the desired improvements into JIRA, with an appropriate priority, and assign people to those tasks.
All of your code should be committed and pushed into the appropriate branch in the repository. Then, tag that version of the code.
Web Application Implementation, Final
Your project implementation should be working correctly by the second deliverable date. This deliverable includes documentation (see below).
All of your code should be committed and pushed into the appropriate branch in the repository. Then, tag that version of the code.
Documentation
The documentation is made up of two main components:
- Description of final use cases -- how the application should be used. Often,
students unknowingly hide features. They know the application well, but the
client doesn't.
Create a document in your git repository called
Using.md
. Highlight new features and improvements you made and how to use them. - You should provide documentation about how to install, configure, and run the application. For example, how to get the data into the database, any additional libraries/jar files needed (these will likely be in the POM, but your documentation would explain the why), any configuration parameters-- what they represent, what are valid values, and where they need to be set.
Analysis
Describe your application, its design, and what worked and what didn't.
Final Demonstration
Your team will develop and conduct a presentation at the Spring Term Festival, presenting an overview of how to use the application.
Your presentation should demonstrate
- the application's functionality
- demonstrate typical situations of how a user would use the application
- the application's error-handling features
Each person in the team should speak approximately the same amount of time.