-
Clone the Repository:
git clone https://github.com/ojhaprathmesh/Beat.it_Team.git -
Install Dependencies:
npm install -
Run the server:
npm run dev
This project uses Firebase for authentication and data storage. This allows for user authentication and song storage without needing to store files locally.
-
Install Dependencies:
npm install
-
Firebase Configuration: Firebase config is already set up in
backend/firebase/firebaseConfig.js. The application uses these credentials for all Firebase services. -
Run the Application:
npm run dev
User authentication is handled by Firebase Authentication:
- User signup process creates a Firebase Auth account and stores additional user data in Firestore
- Login process verifies credentials against Firebase Auth
- The "Forgot Password" feature sends a password reset email through Firebase
Songs are stored in Firebase Storage:
- Song metadata is stored in Firestore
- Audio files are accessed via secure URLs
- Profile pictures are stored in Cloudinary
Beat.it/
βββ backend/ # Backend code
β βββ cloudinary/ # Cloudinary integration
β β βββ cloudinaryConfig.js # Cloudinary configuration
β β βββ imageService.js # Profile picture storage service
β βββ firebase/ # Firebase integration
β β βββ authService.js # Authentication service
β β βββ firebaseConfig.js # Firebase configuration
β β βββ songsService.js # Songs management service
β βββ server.js # Express server and API endpoints
βββ frontend/ # Frontend code
β βββ public/ # Static assets
β β βββ assets/ # Images and media
β β β βββ album-covers/ # Album cover images
β β β βββ home/ # Home page assets
β β β βββ login/ # Login page assets
β β β βββ profile/ # Profile assets
β β β βββ search/ # Search assets
β β β βββ signup/ # Signup assets
β β βββ data/ # JSON data files
β β β βββ albumsData.json # Album data
β β β βββ profileData.json # Profile data
β β β βββ songsData.json # Song data
β β βββ scripts/ # Frontend JavaScript
β β β βββ classes/ # JS classes
β β β βββ components/ # UI components
β β β βββ handlers/ # Event handlers
β β β βββ utility/ # Utility functions
β β βββ styles/ # CSS styles
β β βββ background.css # Background styles
β β βββ colors.css # Color variables
β β βββ font.css # Typography
β β βββ form.css # Form styles
β β βββ logo.css # Logo styles
β β βββ navbar.css # Navigation styles
β β βββ player.css # Music player styles
β β βββ profile.css # Profile page styles
β β βββ song-album.css # Song/album styles
β βββ uploads/ # Audio files (for local testing)
β βββ views/ # EJS templates
β βββ AlbumPage.ejs # Album page
β βββ HomePage.ejs # Home page
β βββ LoginPage.ejs # Login page
β βββ ProfilePage.ejs # Profile page
β βββ ResetPasswordPage.ejs # Password reset page
β βββ SearchPage.ejs # Search page
β βββ SignupPage.ejs # Signup page
β βββ partials/ # Reusable EJS components
β βββ navbar.ejs # Navigation bar
β βββ songs.ejs # Song components
βββ package.json # Project dependencies
βββ README.md # Project documentation
Prathmesh Ojha |
Shrey Jaiswal (v1.0 only) |