Skip to content

Commit

Permalink
features for readme
Browse files Browse the repository at this point in the history
  • Loading branch information
iammuho committed Aug 31, 2023
1 parent 124e38f commit 91907ef
Showing 1 changed file with 50 additions and 10 deletions.
60 changes: 50 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,54 @@ Your real-time chat application built with Golang, MongoDB, WebSockets, and Fast
## Table of Contents

1. [Introduction](#introduction)
2. [Blog Posts](#📚-blog-posts-for-deeper-understanding)
2. [Features](#features)
3. [Wiki](#wiki)
4. [API Documentation](#api-documentation-with-swagger)
5. [License](#license)
5. [Blog Posts](#📚-blog-posts-for-deeper-understanding)
6. [License](#license)

## Introduction

NatterNet is a fast and lightweight chat WebSocket service built with Golang, MongoDB, WebSockets, and Fasthttp. It aims to provide a scalable and efficient platform for real-time chat applications.

## 📚 Blog Posts for Deeper Understanding
## Features

Want to get more in-depth insights into NatterNet? Check out our blog posts:
### Completed Features

1. **[Introducing NatterNet: A Domain-Driven Real-Time Chat Application](https://muhammetarslan.substack.com/p/introducing-natternet-a-domain-driven)**
- Introduction to NatterNet and its architecture.
- **User Authentication**
- JWT-based authentication.
- RSA keys for JWT signing.

2. **[NatterNet: A Deep Dive into Clean Architecture](https://muhammetarslan.substack.com/p/natternet-a-deep-dive-into-clean)**
- Learn the details of how Clean Architecture is implemented in NatterNet.
- **Real-time Communication**
- WebSocket support for real-time updates.

3. **[Deep Dive into Domain-Driven Design in NatterNet](https://muhammetarslan.substack.com/p/deep-dive-into-domain-driven-design)**
- Understand the nuances of Domain-Driven Design as it's applied in NatterNet.
- **Rooms**
- Create, join, and leave rooms.

- **Message Types**
- Support for text messages.

- **Distributed Systems**
- NATS Streaming for event-driven architecture.

- **Logging**
- Comprehensive logging with Uber's Zap logger.

- **API and Web Server**
- API built on top of Fiber (FastHTTP).

- **Database**
- MongoDB for persistent storage.

### Upcoming Features

- Support for more message types like images, audio, video, etc.
- Push notifications via Firebase/OneSignal.
- Real-time "typing..." status display.
- User presence system.
- Message editing and deletion.
- Multi-language support.
- Rate limiting for API requests.

## Wiki

Expand All @@ -41,6 +68,19 @@ You can access the API documentation through Swagger at the following endpoint a

Tip: Before delving into the documentation, ensure to execute `make swagger` at the project root. This step regenerates essential Swagger components, keeping the docs updated.

## 📚 Blog Posts for Deeper Understanding

Want to get more in-depth insights into NatterNet? Check out our blog posts:

1. **[Introducing NatterNet: A Domain-Driven Real-Time Chat Application](https://muhammetarslan.substack.com/p/introducing-natternet-a-domain-driven)**
- Introduction to NatterNet and its architecture.

2. **[NatterNet: A Deep Dive into Clean Architecture](https://muhammetarslan.substack.com/p/natternet-a-deep-dive-into-clean)**
- Learn the details of how Clean Architecture is implemented in NatterNet.

3. **[Deep Dive into Domain-Driven Design in NatterNet](https://muhammetarslan.substack.com/p/deep-dive-into-domain-driven-design)**
- Understand the nuances of Domain-Driven Design as it's applied in NatterNet.

## License

NatterNet is licensed under the MIT License. See the [LICENSE](LICENSE.md) file for more details.

0 comments on commit 91907ef

Please sign in to comment.