Chapter 7

Chapter 7 revolves around User Interface Design. It is important to recognize that the user interface is where all discussions begin and end. It is how developers and users see and report bugs and issues to each other. Integrity and usability are established and maintained here. While there are many methods of UI design, the general guidelines include:

  • Task Oriented - each use case can be explained and a mapping of steps between pages can be made
  • Language - The languge is consistent with the domain and familiar to the user
  • Simplicity
  • Navigatability
  • Visual consistency
  • Discoverability - Can all the pages be found?
  • Data integrity - discussed in a previous chapter
  • Client-Server Integrity
  • Security
  • Documentation

MVC Pattern

The Model View Control pattern is used to organize UI and program files.

  • Model - this includes database connections & application data
  • View - This is the front facing html and accompanying interface for the user
  • Controller - controls user input, output and navigation

This chapter also covered how to prevent different security risks including SQl injection attacks and corss site scripting attacks. Responsive user interfaces are also covered. The design process for these responsive UI’s is more complex and layered than traditional web based projects since this is more likely to be on a mobile device or used “in the field”.

Chapter 9

This chapter revolves around transitioning to professional support once a CO-FOSs project has been produced. To ensure a smooth transition from the origonal development team, a hosting service should be identified and agreed to host services that are compatable with your client. A lot of this is done pro bono by a non-profit. You can also look to suppoort from other developers on the team.

When looking for new clients you can expand your network by looking at other volunteering opportunities in the CO-FOSS community. Also keep in mind what service you will use to license this product. Some alternatives to hosting your CO-FOSS product:

  • GitHub
  • GitLab
  • BitBucket
  • SourceForge

To identify when your CO-FOSS project has matured enough, look to the community around it. How much support does this application have? Software maintenence should become a community activity. Developer to developer discussion can be developed such as an IRC chat so issues and bugs can be discussed.