Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/detronetdip/tello-server
A social media platform build with MERN with secure messaging
https://github.com/detronetdip/tello-server
docker express fullstack-development graphql microservice nodejs postgresql reactjs social-media social-network socket-io typescript webdevelopment
Last synced: 16 days ago
JSON representation
A social media platform build with MERN with secure messaging
- Host: GitHub
- URL: https://github.com/detronetdip/tello-server
- Owner: detronetdip
- License: mit
- Created: 2022-07-27T11:02:33.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-06-17T18:34:15.000Z (over 1 year ago)
- Last Synced: 2024-11-06T10:12:38.603Z (2 months ago)
- Topics: docker, express, fullstack-development, graphql, microservice, nodejs, postgresql, reactjs, social-media, social-network, socket-io, typescript, webdevelopment
- Language: TypeScript
- Homepage:
- Size: 14.8 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Tello: A Social Media App
Build with ❤️ and
Tello is a social media application inspired by Twitter, allowing users to sign up, share posts, interact with other users, and exchange messages.
**This repo contains the backend code, for the frontend part refer [here](https://github.com/detronetdip/tello-client).**
## Technologies Used
- **Frontend**:
- React
- Vite
- Apollo GraphQL
- TypeScript
- Recoil
- IndexedDB
- **Backend**:
- Node.js
- Express.js
- Redis
- RabbitMQ
- PostgreSQL
- GraphQL
- Socket.IO
- **Deployment**:
- Docker## Features
- User authentication and signup using access and refress token with token versioning
- Post creation,Generation, browsing, and engagement (likes, comments)
- Direct messaging between users.
- Unique Message Storage: Messages are never stored in a database; instead, they are directly stored on the client-side. This approach ensures privacy as only the two clients engaged in a conversation can access the messages and once they close the app it will be vanished. This feature is made possible by leveraging Redis, RabbitMQ, Socket.IO, and IndexedDB.## Getting Started
To run the Tello application locally, please follow the steps below:
### Prerequisites
Ensure that you have the following software installed on your machine:
- [Node.js](https://nodejs.org/) (version 14 or higher)
- [Docker](https://www.docker.com/)### Installation
1. Clone the repository:
```bash
git clone https://github.com/detronetdip/tello-server
```2. Start the required containers using Docker Compose:
```bash
cd tello-server
docker-compose up -d
```This command launches the necessary containers for the database, caching, and RabbitMQ.
3. Configure the environment variables:
- Duplicate the .env.example file and rename it to .env.
- Fill in the accurate data for the environment variables specified in the file.4. Install dependencies and start the backend server:
```bash
cd [server name]
npm install
npm start
```5. Install dependencies and start the frontend development server
- Clone the [frontend](https://github.com/detronetdip/tello-client)
- Run below commands
```
cd tello-client
npm install
npm run dev
```6. Access the Tello application in your browser at `http://localhost:5172`
### Usage
- Sign up for a new account or log in with your existing account.
- search and follow your friends.
- Explore posts from other users, like and comment on them.
- Use the direct messaging feature to communicate privately with other users.### License
This project is licensed under the [MIT License](/LICENSE)