A modern social networking platform built with Next.js and Express.js microservices architecture.
Bento Social Network is a full-stack social media application that provides real-time interactions, media sharing, and social networking features. The project is split into two main parts:
- Frontend (
bento-social-next/
) - A Next.js application - Backend (
bento-microservices-express/
) - Express.js microservices
- Next.js 14
- React 18
- TypeScript
- Tailwind CSS
- Radix UI Components
- Framer Motion
- React Query
- Zod for validation
- Express.js
- Prisma ORM
- MySQL
- Redis for real-time features
- Docker
- Microservices Architecture
- Modern UI with responsive design
- Server-side rendering
- Theme customization (Light/Dark/Auto)
- Real-time interactions
- Post creation and sharing
- Comments and replies
- Story features
- User following system
- Media upload and handling
- Topic-based content organization
- Bookmarking system
- SEO optimized
- Accessibility compliant
- Navigate to the backend directory:
cd bento-microservices-express
- Install dependencies:
pnpm install
- Start services with Docker:
docker-compose up -d
- Clone the repository
- Install dependencies:
cd bento-social-next
pnpm install
- Run the development server:
pnpm dev
The application will be available at http://localhost:3001
(frontend) and http://localhost:3000
(backend).
- Set up the database:
export DATABASE_URL="mysql://root:200lab_secret@localhost:3306/social_network?connection_limit=100"
pnpx prisma migrate dev
pnpx prisma generate
- Start the server:
pnpm dev
/src/components
- Reusable UI components/src/layouts
- Page layouts and structure/src/sections
- Feature-specific components/src/apis
- API integration/src/interfaces
- TypeScript interfaces/src/schema
- Zod validation schemas/src/styles
- Global styles and CSS modules
/src/modules
- Microservice modules/src/shared
- Shared utilities and interfaces/prisma
- Database schema and migrations/src/infras
- Infrastructure layer
- Use
pnpm
as the package manager - Follow the established code style using Prettier and ESLint
- Implement components following the atomic design pattern
- Use TypeScript for type safety
- Follow the microservices architecture pattern for backend services
The project includes Docker configuration for both development and production environments. Use the provided Dockerfile and docker-compose files for containerization.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the ISC License.
- Code by @Scode Njnjas