Skip to content

Latest commit

 

History

History
107 lines (77 loc) · 4.94 KB

README.md

File metadata and controls

107 lines (77 loc) · 4.94 KB

Sound Cloud Clone

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.

I. Backend

Repository

Features

  1. User Authentication:

    • Login using credentials (JWT - stateless)
    • Login with GitHub and Google (Powered by Passport)
  2. User Registration and Email Confirmation:

    • User registration
    • Send email confirmation (Powered by Node Mailer)
  3. Logout:

    • Stateless logout functionality
  4. Payment Integration:

    • Integration with PayOS for payment processing
  5. Role-based Access Control:

    • Implement user roles and permissions
  6. File Upload:

    • File upload functionality
  7. Cron job:

    • Automatically email tracks that users have followed
  8. Sound Cloud APIs:

    • Provide various APIs for Sound Cloud functionalities: Auth, User, Track, Like, Comment, Follow, Genre, Payment, Role, Permission, File.

Tech Stack

nest ts passport node mailer mongoDB swagger

  • 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.

II. Frontend

Repository

Features

  1. User Authentication and Account Management:

    • Login, register, and email account confirmation using a code sent to the user's email (powered by NextAuth.js). image
  2. Track Management:

    • Listen to tracks.

    • Like tracks.

    • Follow track creators.

    • Comment on tracks. image

    • Create playlists of tracks. image

    • Upload new tracks. image

    • View liked tracks and created tracks. image

    • Upgrade account with integrated PayOS payment processing. image image image

Tech Stack

nextjs react ts mui next auth

  • 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.

Alt