SNet is a powerful social networking platform built on modern technologies. The project leverages NestJS as its primary framework for building a scalable and efficient backend, with FastAPI serving as a secondary framework for AI-powered features and API processing.
- NestJS: Primary backend framework
- FastAPI: Secondary framework for AI models and API processing
- PostgreSQL: Main database
- Redis: In-memory database for caching and real-time features
- BullMQ: Queue system for background job processing
- Elasticsearch: Search engine for content indexing
- FAISS: Vector similarity search for AI features
βββ src/ # Backend system
βββ model-ai/ # Models AI use FastAPI, Huggingface, Faiss...
βββ docs/ # Documents for project and images for README.md
βββ public/ # Data images/videos of app
βββ test/ # Files test app
βββ docker-compose.yaml # Manager containers
βββ README.md # Project documentation (this file)
βββ .gitignore # Block files when push github
# Create and run all services
docker-compose up
# To shut down and remove volumes
docker-compose down -v
# Install dependencies
npm install --legacy-peer-deps
# Development mode with hot-reload
npm run dev
SNet follows a microservices architecture:
- NestJS Backend: Handles core application logic, authentication, and main API endpoints
- FastAPI Services: Process AI-related tasks and specialized API endpoints
- Database Layer: PostgreSQL for persistent storage, Redis for caching
- Search Services: Elasticsearch for content search, FAISS for AI vector similarity search
- Background Processing: BullMQ for handling asynchronous tasks
# Unit tests
npm run test
# E2E tests
npm run test:e2e
# Test coverage
npm run test:cov
Contributions are welcome! Please feel free to submit a Pull Request.
If you encounter any issues or need support, please reach out:
SNet is MIT licensed.