Garien

Covey.town

Northeastern Software Engineering Coursework Project

Covey.town provides a virtual meeting space where different groups of people can have simultaneous video calls, allowing participants to drift between different conversations, just like in real life

High-level architecture of Covey.town


- The frontend client uses the PhaserJS Game Library to create a 2D game interface, using tilemaps and sprites.

- The frontend implements video chat using the Twilio Programmable Video API

- A backend service implements application logic: tracking which "towns" are available to be joined, and the state of each of those towns

CREATE A TOWN

A user has to input a username, town name and select if it is going to be publicly listed in the town join list


OR


JOIN A TOWN

Select a town and if there is space you can connect to that town in the public town list or if you know the townID you can input that a connect directly to that town

IN THE

TOWN

- Town is given a TownID and editing password

- In the Foyer there are tables where a user can create a topic and others can join the discussion

- Users are automatically connected with each other through video and voice chat

- Video and voice chat can be turned on and off as a user desires

- The town also has information on all of the different conversations going on and who is participating in those discussions

Languages

Typescript

Javascript

HTML/CSS

Tools

  • PhaserJS Game Library
  • Twilio Programmable API
  • React
  • Heroku
  • npm
  • Postman

Awards

  • It’s Nice That
  • AIGA
  • Fonts In Use
  • The Dieline

Contact

  1. email@domain.com

  2. — Twitter
  3. — Instagram
  4. — Facebook


Takeaways

This project was a good way to understand and learn the software engineering process. By working on both the frontend and the backend of this application I was able to learn about how each work individually and how they are connected to each other. The seven steps of the software development process were all touched upon with this project from planning, checking requirements, design/prototyping, software development, software testing, implementation/integration, and operation/maintenance. I learned that the software engineering process is a continuous loop meaning that things are constantly being changed and evolving. Software development is a great thing and being able to write consistent and concise code that can be implemented in a variety of situations is what makes programming so incredibly dynamic.