Giter Site home page Giter Site logo

evgenii-petukhov / letstalk.angular.app Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 13.08 MB

An instant messaging service with authentication via social media, such as Facebook. The service allows users to send text messages and share links.

Home Page: https://chat.epetukhov.cyou

JavaScript 13.19% TypeScript 68.27% HTML 8.80% SCSS 9.74%

letstalk.angular.app's Introduction

LetsTalk Chat App @ front-end

Angular TypeScript NodeJS Visual Studio Code

๐Ÿ”” Please, also see the back-end repository ๐Ÿ™

scheme

๐Ÿ”ด Live demo

Description

This is an instant messaging service with authentication via social media, such as Facebook. It allows users to send text messages, images, and share links.

This project is a showcase of my technical skills and talent for potential IT recruiters, employers, customers, etc. It demonstrates that

  • I can
    • create a single-page web application with Angular
    • implement reactive state management with NgRx store in Angular applications
  • I understand
    • basic principles of the OpenAPI Specification
    • microservice communication patterns and protocols, such as GRPC
    • main principles of microservice architecture, event-driven development, and experienced in Apache Kafka

Architecture

scheme

The front-end is an Angular single-page application which uses NgRx for reactive state management.

The back-end implements microservice architecture. The table below describes each of them.

Microservice name Protocol Description
Chat API REST Responsible for sending messages and account management
Authentication GRPC Generates and validates JSON Web Tokens
Notification Apache Kafka | SignalR Sends out notifications about new messages
Link preview Apache Kafka Decorates messages with a website's name and a picture preview, if a message contains links
File storage GRPC Web Saves avatars and images uplodaed by users on the file system and serves them when requested
Image processing Apache Kafka Generates image previews, uses SkiaSharp

Get started

  1. Clone the repository
  2. Install dependencies npm install
  3. Build the project. Use one of the following commands
    • npm run build for the production environment
    • npm run build:dev for development purposes
  4. Copy the output files to the website's directory

letstalk.angular.app's People

Contributors

evgenii-petukhov avatar

Watchers

Kostas Georgiou avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.