Skip to content

likith99mutta/Beat.it_Team

Β 
Β 

Repository files navigation

How to Use

  1. Clone the Repository:

    git clone https://github.com/ojhaprathmesh/Beat.it_Team.git
    
  2. Install Dependencies:

    npm install
    
  3. Run the server:

    npm run dev
    

Firebase Integration

This project uses Firebase for authentication and data storage. This allows for user authentication and song storage without needing to store files locally.

Setup

  1. Install Dependencies:

    npm install
  2. Firebase Configuration: Firebase config is already set up in backend/firebase/firebaseConfig.js. The application uses these credentials for all Firebase services.

  3. Run the Application:

    npm run dev

Authentication Features

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

Storage Features

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

Project Structure

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

πŸ‘₯ Contributors

Prathmesh Ojha
Prathmesh Ojha
Shrey Jaiswal
Shrey Jaiswal (v1.0 only)

About

🎢 Beat.it: Your Ultimate Music Player 🎢 Welcome to Beat.itβ€”a user-friendly music player that lets you enjoy your favorite tracks seamlessly! This project is a full-stack application designed for music lovers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 62.4%
  • EJS 28.2%
  • CSS 9.1%
  • Batchfile 0.3%