Skip to content

DhanushNehru/HarmonyCode

Repository files navigation

HarmonyCode

forthebadge PRs Welcome Visitors GitHub forks GitHub Repo stars GitHub contributors GitHub last commit GitHub repo size Github GitHub issues GitHub closed issues GitHub pull requests GitHub closed pull requests

Music for your coding 🎡

Join Our Discord Subscribe on YouTube Subscribe to Newsletter
Harmony Code - Harmony code is a platform that blends music with coding | Product Hunt

This is a Next.js project bootstrapped with create-next-app.

Table of Contents

Getting Started

Prerequisites

Before you begin, ensure you have met the following requirements:

  • Node.js: Make sure you have Node.js installed on your machine. You can download it from nodejs.org.

Setting Up Firebase Environment Variables and Enabling Authentication

To run this project, you need to set up environment variables for Firebase. These variables contain sensitive information and should not be hard-coded in your codebase. Follow these steps to set up the required environment variables:

  1. Create a Firebase Project:

  2. Obtain Firebase Configuration:

    • In the Firebase Console, select your project.

    • Go to Project settings (gear icon) > General.

    • Under the "Your apps" section, select the web app you are using for this project.

    • You will find the Firebase configuration object, which includes the following properties:

      • apiKey
      • authDomain
      • projectId
      • storageBucket
      • messagingSenderId
      • appId
  3. Set Up Environment Variables:

    • In your project directory, create a .env.local file (if it doesn't already exist).

    • Add the following lines to the .env.local file:

      NEXT_PUBLIC_API_KEY=<Your-API-Key>
      NEXT_PUBLIC_AUTH_DOMAIN=<Your-Auth-Domain>
      NEXT_PUBLIC_PROJECT_ID=<Your-Project-ID>
      NEXT_PUBLIC_STORAGE_BUCKET=<Your-Storage-Bucket>
      NEXT_PUBLIC_MESSAGING_SENDER_ID=<Your-Messaging-Sender-ID>
      NEXT_PUBLIC_APP_ID=<Your-App-ID>
      NEXT_PUBLIC_GEMINI_API_KEY=<your-gemini-api>

    Replace <Your-API-Key>, <Your-Auth-Domain>, etc., with the respective values you obtained from Firebase.

    • Save the .env.local file.
  4. Load Environment Variables:

    • Ensure that you have a method to load environment variables in your Next.js application. You can use packages like dotenv or Vercel's built-in support for environment variables.
  5. Enabling Authentication:

    Google Authentication:

    1. Go to the Firebase Console and select your project.
    2. Navigate to the "Authentication" section and click on the "Sign-in method" tab.
    3. Click on "Add new provider", then find "Google" and enable it. Configure OAuth consent screen details if required.
    4. Google Authentication is now enabled in your project.

    For detailed instructions, refer to the Firebase's Google Authentication documentation.

    Github Authentication:

    1. Go to the GitHub Developer Settings and create a new GitHub OAuth application.
    2. Set the "Application Name", "Homepage URL" and ensure the "Authorization callback URL" matches your Firebase project's settings. Register the application.
    3. Note the "Client ID" and "Client Secret."
    4. In the Firebase Console, on your project, navigate to the "Authentication" section.
    5. Enable GitHub Authentication in the "Sign-in method" tab by providing the "Client ID" and "Client Secret" obtained from GitHub. Configure OAuth consent screen details if required.
    6. Github Authentication is now enabled in your project.

    For detailed instructions, refer to the Firebase's GitHub Authentication documentation.

  6. Start Your Application:

    • You can now start your Next.js application. The Firebase configuration will be loaded from the environment variables you set up.

Usage

Provide information on how to use your project once the environment variables are set up correctly.

Contributing

We welcome contributions from the community! If you're interested in contributing to this project, please read our contribution guidelines.

License

This project is licensed under the [License Name] - see the LICENSE.md file for details. and contributions are welcome!


Best Contributors


If you liked this project support it by starring it 🌟 and share it on social media