An open API service indexing awesome lists of open source software.

https://github.com/marwanradwan7/fleet

Fleet is a social media application.
https://github.com/marwanradwan7/fleet

backend backend-api nestjs postgresql social-media socket-io typeorm typescript

Last synced: 2 months ago
JSON representation

Fleet is a social media application.

Awesome Lists containing this project

README

          

# Fleet

[![Version][version-shield]](version-url)
[![Stargazers][stars-shield]][stars-url]
[![MIT License][license-shield]][license-url]

Fleet is a social media application to share your thoughts, make new fiends and text with your friends


## Docs

- [API Documentation](https://app.swaggerhub.com/apis/MarwanRadwan/Fleet/1.5): list of the application 's backend endpoints.
- [Database Schema](/docs/fleet-db.png): Database Design of the app and it also available in `.dbml` format.
- ### App is Built With:
- TypeScript
- NestJS
- PostgreSQL
- TypeORM
- Redis Caching
- SocketIO
- Cloudinary

## Features

- App comes with following features:
- Protected endpoints either the REST or WebSockets with JWT Tokens.
- Cached Responses for better performance.
- Exceptions and Error handling.
- RateLimiting for the endpoints.
- SQL Injection and CORS protection.
- Users can do the following:
- Posting with the ability to attach media to the posts.
- Find the posts with hashtags they are interested in.
- Comment and like other user's posts.
- Follow other users amd block unwanted users.
- Create public chat groups.
- Chat in public groups or with other users privately.
- Get a feed of posts either from their following users or get the top trending posts based on the overall interactions.

## Installation

```bash
$ npm install
```

## Running the app

The `.env` file should have these environment variables similar to the [example.env](./docs/example.env)

```bash
# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod
```

## License

Fleet is [MIT licensed](LICENSE).

[version-shield]: https://img.shields.io/github/package-json/v/MarwanRadwan7/fleet?style=for-the-badge
[version-url]: https://github.com/MarwanRadwan7/fleet
[contributors-shield]: https://img.shields.io/github/contributors/MarwanRadwan7/fleet.svg?style=for-the-badge
[contributors-url]: https://github.com/MarwanRadwan7/fleet/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/MarwanRadwan7/fleet.svg?style=for-the-badge
[forks-url]: https://github.com/MarwanRadwan7/fleet/forks
[stars-shield]: https://img.shields.io/github/stars/MarwanRadwan7/fleet.svg?style=for-the-badge
[stars-url]: https://github.com/MarwanRadwan7/fleet/stargazers
[issues-shield]: https://img.shields.io/github/issues/MarwanRadwan7/fleet.svg?style=for-the-badge
[issues-url]: https://github.com/MarwanRadwan7/fleet/issues
[license-shield]: https://img.shields.io/github/license/MarwanRadwan7/fleet.svg?style=for-the-badge
[license-url]: https://github.com/MarwanRadwan7/fleet/blob/main/LICENSE