๐ Please, also see the back-end repository ๐
๐ด Live demo
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
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 |
- Clone the repository
- Install dependencies
npm install
- Build the project. Use one of the following commands
npm run build
for the production environmentnpm run build:dev
for development purposes
- Copy the output files to the website's directory