The course project will be done in teams of 3 people. The teams you will analyze, design and partially implement in Scala a simple information system for a video rental store. Projet deliveries include analysis and design documents, as well the source code of the system implementation.

For the programming aspects of the project it will beneficial to adopt pair programming techniques were all member of the team rotate in taking the pair programming roles. The same techniques could be beneficial during the writing of other project deliverables, such as UML diagrams. Check the resources below for more information on pair programming.

  1. Pair Programming
  2. Project Teams
  3. Sample Code

Pair Programming


Bart Brown
Michael Richards
Yi Zhou
Logan Butler
Brandon Capper
Akshay Yadav
Jonathan Conway
Zhecheng Ding
Aaron Shaw
Jacob Alaya
Adam Parro
John Sekellaris
Christian Baldus
Jacob Cassens
Erica Silver
Tony Andrys
Brian Fox
Andrew Noel
Berndon Bigelow
Will Gries
Charles Okpala
Jingting Fu
Judah Walker
Jian Wang
Asya Bergal
Kyle Nolan
Paul Yon
Jeans Deschamps
Brenna Faler
Anna Swinehart
Junyang Cheng
King Chueng
Jae Hyung Kim
Eric Hickman
Thomas (Kenny) LeHew
Joseph Peppers
Michael Nagy
Colin Nickeson
Alic Szecsei
Steven Danielson
Mitchel Meyer
Justin Okamoto
Danan Flander
Shusho Shi
William Tumey
Eric Burns
Jennifer Clendineng
Wyatt Kaiser
Matt Azamczyk
David Campbell
Aaron Masover
Joo Yo Chang
Pranav Herur
David Maslowski
Cody Childs
Vince McAlpine
Taylorel Stutts
Jorge Cividanes
Ryan Denny
Thomas Knudson
Colten Duccini
Tingting Gao
Grant Lindburg
Robert Rinderknecht
Chris Stewart
Jesse Johnson
Steven Mayner
Renesa Smith-Taylor
Yue Jing
Ziying Liu
Jiaji Sun
Cameron Loushin
Ryan Meagher
Hakim Tatah
Chase Reed
Nicholas Schwarzentraub
Daria Tan
Mark Snyder
Nathan Thackery
Joseph Volker

Sample Code

The SBT project provided on ICON contains a few sample Scala modules for components you will need in your implementation.

The file PersistentTables.scala contains sample code on how to implement relational database-style tables which can be individually saved to and loaded from disk in text format. You can adapt and extend the sample classes there to store persistent information about customers, movie titles, game titles, rentals and so on.

The file Main.scala defines the main singleton class of the system. It is called GUI and is a subclass of SimpleSwingApplication, a predefined class of Scala's Swing library. That library, which is built on the Java Swing framework, allows one to build graphical user interfaces in Scala. Object GUI builds the main window of the GUI and defines several components in it.

One of them, a window pane that shows customer information, is contructed in another class, CustomersUI, defined in file CustomersUI.scala. That class contains further sample code on how to show customer information in the GUI and how to associate actions to GUI components like buttons, menus, editable text fields and so on. Most of the actions defined in Main.scala and in CustomersUI currently have a dummy body: they print some text on the standard output terminal. You will have to replace them to calls to your own code performing real actions.

We will go over Scala Swing and few examples of its uses in class. In the meantime, you can find initial information in Chapter 34 of the Scala textbook, and details information in documenation of the Scala Swing library.

Course Info




Course Work