This project is a full-stack implementation of a Sound Cloud Clone, built using NestJS for the backend and Next.js for the frontend. Below are the key features and technologies used in both parts of the project.
-
User Authentication:
- Login using credentials (JWT - stateless)
- Login with GitHub and Google (Powered by Passport)
-
User Registration and Email Confirmation:
- User registration
- Send email confirmation (Powered by Node Mailer)
-
Logout:
- Stateless logout functionality
-
Payment Integration:
- Integration with PayOS for payment processing
-
Role-based Access Control:
- Implement user roles and permissions
-
File Upload:
- File upload functionality
-
Cron job:
- Automatically email tracks that users have followed
-
Sound Cloud APIs:
- Provide various APIs for Sound Cloud functionalities: Auth, User, Track, Like, Comment, Follow, Genre, Payment, Role, Permission, File.
- NestJS: A progressive Node.js framework for building efficient, reliable, and scalable server-side applications.
- TypeScript: A typed superset of JavaScript that compiles to plain JavaScript.
- JWT (JSON Web Tokens): For stateless authentication.
- Passport: Authentication middleware for Node.js.
- Node Mailer: For sending email confirmations.
- PayOS: For payment processing integration.
- MongoDB - Mongoose: A library that creates a connection between MongoDB and the Node.js.
- Swagger: For API documentation.
- Multer: Middleware for handling
multipart/form-data
, used for file uploads.
-
User Authentication and Account Management:
-
Track Management:
- Next.js: A React framework for server-rendered applications.
- React: A JavaScript library for building user interfaces.
- TypeScript: A typed superset of JavaScript that compiles to plain JavaScript.
- Material-UI (MUI): A popular React UI framework.
- NextAuth.js: Authentication for Next.js.
- Wavesurfer.js: Navigate and manipulate audio waveforms.
- PayOS: Payment processing integration.