https://github.com/iamarvy/dreamscape
Dreamscape is a modern, scalable social media platform built with a microservices architecture. It enables users to post updates, view and engage with content, like and comment on posts, and communicate in real time via direct messages and group chats.
https://github.com/iamarvy/dreamscape
docker event-driven-architecture grpc jwt kafka microservices nestjs nuxtjs typescript websockets
Last synced: 5 months ago
JSON representation
Dreamscape is a modern, scalable social media platform built with a microservices architecture. It enables users to post updates, view and engage with content, like and comment on posts, and communicate in real time via direct messages and group chats.
- Host: GitHub
- URL: https://github.com/iamarvy/dreamscape
- Owner: iamArvy
- Created: 2025-05-13T14:45:30.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-05-13T15:03:08.000Z (5 months ago)
- Last Synced: 2025-05-13T16:25:49.130Z (5 months ago)
- Topics: docker, event-driven-architecture, grpc, jwt, kafka, microservices, nestjs, nuxtjs, typescript, websockets
- Language: TypeScript
- Homepage:
- Size: 7.6 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Dreamscape
**A scalable social media platform built with a microservices architecture.**
## π§© Overview
Dreamscape is a modern web application that allows users to:
- πΈ Post updates and media
- β€οΈ Like and π¬ comment on posts
- π¬ Chat in real-time with friends and groups
- π₯ Connect with other usersItβs built with **NestJS** for the backend services and **Nuxt** for the frontend, following a clean and modular microservices approach for better scalability, maintainability, and developer experience.
---
## π οΈ Tech Stack
| Layer | Technology |
|--------------|----------------|
| Frontend | Nuxt 3 |
| Backend | NestJS |
| Communication| gRPC, WebSockets, REST |
| Auth | JWT, Passport |
| Realtime | Socket.io / Redis pub-sub |
| Database | PostgreSQL / MongoDB (per service) |
| Messaging | AWS SQS / Kafka (event-driven) |
| Infrastructure | Docker, AWS ECS/Fargate or EC2, S3, CloudFormation |---
## π§± Microservices
| Service | Description |
|-------------------|---------------------------------------------------------|
| **Auth Service** | Handles user registration, login, and JWT issuance |
| **User Service** | Manages user profiles, connections, and preferences |
| **Post Service** | CRUD operations for user-generated posts |
| **Interaction Service** | Handles likes, comments, and reactions |
| **Chat Service** | Real-time messaging with support for 1-1 and group chats |
| **Notification Service** | Sends alerts for new messages, likes, and more |
| **Media Service** | Handles file uploads (images, videos) to S3 |
| **Gateway API** | Acts as an entry point, routes requests to services |---
## π Getting Started
### Prerequisites
- Node.js (v18+)
- Docker & Docker Compose
- pnpm (or npm/yarn)
- AWS CLI (for cloud deployment)### Local Setup
```bash
# Clone the monorepo
git clone https://github.com/iamArvy/dreamscape.git
cd dreamscape# Install dependencies
pnpm install# Start all services
docker-compose up --build
```Frontend (Nuxt) will be available at `http://localhost:3000`
Backend services will run on different ports inside Docker.---
## π§ͺ Running Tests
Each service contains its own tests.
```bash
# Example for auth service
cd services/auth
pnpm test
```---
## π¦ Folder Structure
```
dreamscape/
βββ frontend/ # Nuxt frontend
βββ services/ # NestJS microservices
β βββ auth/
β βββ user/
β βββ post/
β βββ chat/
β βββ ...
βββ gateway/ # API Gateway using NestJS
βββ docker-compose.yml
βββ README.md
```---
## π Future Plans
- Implement Redis caching
- Add search service (e.g., ElasticSearch)
- Add subscriptions & notifications (Web Push)
- Integrate admin dashboard
- Support media tagging and mentions---
## π License
MIT License β see [LICENSE](./LICENSE)
---
## π Acknowledgements
Inspired by platforms like **Facebook**, **Twitter**, and **Discord** β designed to be modular, scalable, and developer-friendly.