Socket Io Chat Fargate

A demo application showing how to deploy a scalable realtime chat application powered by Socket.io, Node.js, Docker, and AWS Fargate. Includes full text search powered by OpenSearch Serverless

Full Stack Web DevelopmentJavaScriptMIT

Abstract

Socket Io Chat Fargate is an open-source Full Stack Web Development project. A demo application showing how to deploy a scalable realtime chat application powered by Socket.io, Node.js, Docker, and AWS Fargate. Includes full text search powered by OpenSearch Serverless. A Slack-like chat app built with Node.js and Vue.js and deployed using Amazon Web Services. It is built using JavaScript, Node.js, AWS. Key capabilities include: No EC2 instances. One of the goals of this application architecture is that it is very hands off, nothing to manage or update. Serverless features are turned on wherever possible; Fully defined as infrastructure as code, using AWS CloudFormation to create all the application resources; Integration test suite container that you can run against a copy of the application, either locally or remotely. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building a Full Stack Web Development mini project or final-year project.

1. Introduction

A Slack-like chat app built with Node.js and Vue.js and deployed using Amazon Web Services.

This application uses Docker containers in AWS Fargate, and AWS App Runner, as well as AWS Lambda functions.

A sample version of the app is hosted at: https://fargate.chat

2. Objective

A demo application showing how to deploy a scalable realtime chat application powered by Socket.io, Node.js, Docker, and AWS Fargate. Includes full text search powered by OpenSearch Serverless

This project demonstrates how JavaScript, Node.js, AWS can be applied to a real-world Full Stack Web Development problem.

3. Key Features / Modules

  • No EC2 instances. One of the goals of this application architecture is that it is very hands off, nothing to manage or update. Serverless features are turned on wherever possible.
  • Fully defined as infrastructure as code, using AWS CloudFormation to create all the application resources.
  • Integration test suite container that you can run against a copy of the application, either locally or remotely.
  • User account functionality, including anonymous accounts
  • Real time chat message sending over WebSocket protocol, with persistance in DynamoDB
  • Live user presence, including announcments when users join or leave
  • Unread message indicator
  • Typing indicator, including support for multiple typers at once.
  • Full text search for chat messages, powered by Amazon OpenSearch Serverless
  • Infinite virtual DOM scrolling, for performant feeling even when many thousands of messages have been sent in a room.

4. Technology Stack

JavaScriptNode.jsAWS

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Node.js (LTS) and npm
  • A modern web browser
  • VS Code or any code editor
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/nathanpeck/socket.io-chat-fargate.git
cd socket.io-chat-fargate
  1. Docker: https://docs.docker.com/get-docker/
  2. AWS SAM CLI: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html
  3. Install Node and NPM if not present

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add role-based access control
  • Deploy on a VPS or cPanel hosting with a custom domain
  • Add automated tests and a CI pipeline

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Explain the frontend, backend and database layers of this application.
  2. How is user authentication and authorisation implemented?
  3. Describe the main database tables / collections and their relationships.
  4. Which REST APIs or routes are exposed and what do they return?
  5. How would you deploy this application to production?

9. Source Code & License

This project is developed by nathanpeck and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on a Full Stack Web Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Full Stack Web Development Internship