Course:CPSC312-2024/ChatApp

From UBC Wiki

Authors: Dora Qi, Rustam Nassyrov, Justin Rahardjo

What is the problem?

People want to chat with each other. Using our CLI chat app, you can chat with all your friends without ever leaving the terminal. Yippie!

- You can create an account on our chat platform.

- You can message people as long as you know their username.

- You can receive messages from other users.

What is the something extra?

- The CLI will automatically update when you receive a message.

- All the messages you receive while you aren't logged-in will be preserved.

- The CLI will show you notification about new message.

- The chat will be run on a web server.

What did we learn from doing this?

- How to create a project in Haskell and manage dependencies using cabal/stack.

- How to create a REST API in Haskell using Scotty.

- How to make HTTP requests in Haskell using Conduit.

- How to manage server and client state.

- Multithreading and concurrency in Haskell.

Work division

- Dora: server chat logic, some server endpoints, client logic and user interaction

- Rus: server web socket setup, some server endpoints, client setup, client polling logic, investigations

- Justin: investigations on client

Links to code etc.