/snak

A MEAN chat application built with socket.io and made beautiful by Tailwind

Primary LanguageTypeScript

Welcome to Snak. A chat app built to connect you to the world.

"Det at nogen snakker venskabeligt, afslappet eller uformelt med nogen" - Den Danske Ordbog

This is a chat application built with MEAN stack fully developed with TypeScript. It is fully responsive built on Angular 13 and powered by Tailwind CSS.

Features:

  • Sign up as a new user
  • Log in with your user
  • See a list of all chat rooms
  • Create a chat room
  • Join any chat room in the list
  • Send and receive messages in the chat room you have joined (powered by socket.io)
  • Persistent messages and users

Screenshots

All screenshots

Demo

Steps to run locally:

This application was built on a UNIX-compliant system and assumes you are running it on one as well. Linux, WSL and MacOS are supported.

  1. Have Node.js installed.
  2. Clone the repository: git clone https://github.com/shrestaz/snak.git
  3. Navigate into the folder: cd snak
  4. Install dependencies: npm install
  5. Create an .env file inside the folder snak-server.
    • Complete path to .env file is snak/snak-server/.env
  6. Populate with secrets provided to you
  7. From root of the project, start the application: npm start
    • Wait for both server and client to be built.
  8. In your browser, access the application at localhost:4200
  9. Profit!

Steps to run unit tests:

Only a handful of tests were written for the server due time crunch. Jest framework was used to write the unit tests.

  1. Navigate to the server folder: cd snak-server
  2. Run the test: npm test