-
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) |