Chatter

DUE Wed, 09/18, 2 pm

This assignment may be completed individually or in teams of at most 2. You can partner differently for each lab.

Chatter is a simple chat app. In this first iteration, user can only post textual chatt. In subsequent labs, we will add, in turn, audio, authentication, image and video, and location information. Each subsequent lab will build upon this lab only, not on each other, though you’re free (but not recommended) to make them cumulative.

This lab is more a tutorial than a lab. For the front end, it gets you to set up your IDE and to know the development tools and environment. It also help you set up the back end server that you will be using for all the other labs.

This lab can be completed mostly by cut-and-pasting code from the spec. However, you will be more productive on the quizzes and your course project if you do understand the code. As a general rule of thumb, the less time you spend reading, the more time you’ll spend debugging. If you spend time to understand the code, the front end of the lab should take less than 1 hour to complete and the back end about another 1.5 to 2 hours. You are encouraged to complete this lab in two sittings, starting with the front end.

Specifications

There are TWO pieces to this assignment: a front-end mobile client and a back-end server. For the front end, you can build either for Android in Kotlin with Compose or iOS in Swift with SwiftUI. For the back end, you can build using either a Go-atreugo, Python-Django, or Rust-axum stack.

You only need to build one front end, AND you must build the back-end using one of the three alternative stacks.

IMPORTANT: unless you plan to learn to program both Android and iOS, you should do the labs on the same platform as that of your course project.

The back-end server is a few lines of code with a couple lines of SQL thrown in. The majority of work in the back end is to set up a server which you will use to host the back end for all subsequent labs.

Once you have built and tested both your front end and back end, you MUST get your front end talking to your back end.

Objectives

Front end:

Back end:


Prepared for EECS 441 by Sugih Jamin Last updated: January 9th, 2024