Skip to content
SK MIRAJUL ISLAM edited this page Oct 6, 2024 · 1 revision

Here’s a GitHub Wiki structure for your Enyanjyoti repository:


Welcome to the Enyanjyoti Project Wiki!

Enyanjyoti is a platform designed to bridge the gap between education and employment while providing vital information about financial support, such as loans and grants. The platform aims to empower learners and professionals alike, offering valuable resources for conceptual learning and career growth.


Table of Contents

  1. Overview
  2. Project Structure
  3. Technologies Used
  4. Getting Started
  5. Backend APIs
  6. Firebase Integration
  7. Frontend UI
  8. Contributing
  9. Community Guidelines
  10. FAQs

Overview

The Enyanjyoti platform serves as a one-stop solution for:

  • 📚 Conceptual Learning
  • 💼 Career and Employment Opportunities
  • 💰 Information on Loans and Grants

This repository is a part of GirlScript Summer of Code 2024 Extended Edition and is built using ReactJS, Firebase, CSS, JavaScript, and Express/NodeJS.


Project Structure

/backend             # Node.js and Express APIs
/frontend            # React.js components and views
/firebase            # Firebase configuration and functions
/public              # Static files like images, fonts, etc.
/src                 # Main application source code
    /components      # React components
    /utils           # Utility functions and hooks
    /styles          # Global CSS and styles
    /services        # API calls and Firebase services
package.json         # Dependencies and scripts

Technologies Used

  1. ReactJS: Frontend library for building user interfaces.
  2. Firebase: Authentication, database, and hosting services.
  3. CSS: Styling for UI components.
  4. JavaScript: Core programming logic for both frontend and backend.
  5. Express & NodeJS: Backend framework for building APIs and handling server-side logic.

Getting Started

Follow these steps to set up the project on your local machine:

  1. Clone the Repository

    git clone https://github.com/<your-username>/Enyanjyoti.git
    cd Enyanjyoti
  2. Install Dependencies
    For frontend:

    cd frontend
    npm install

    For backend:

    cd backend
    npm install
  3. Set Up Firebase

    • Create a Firebase project on Firebase Console.
    • Add Firebase configuration details in .env files for both frontend and backend.
  4. Run the Application
    In two separate terminal windows, run the frontend and backend servers:

    cd frontend
    npm start
    cd backend
    npm run dev
  5. Access the Application
    Open http://localhost:3000 in your browser to access the platform.


Backend APIs

The backend is built using Node.js and Express.js. Below are the key APIs available:

  • /api/careers: Get career opportunities.
  • /api/learning: Fetch conceptual learning materials.
  • /api/grants: Get information on loans and grants.

Example of making a POST request to create new content:

fetch('/api/careers', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ jobTitle: 'Frontend Developer', company: 'XYZ Corp' })
});

Firebase Integration

Firebase is used for:

  • Authentication: Manage user logins with Google, email, or password.
  • Firestore Database: Store information related to learning resources, career opportunities, and financial support.
  • Hosting: The platform can be hosted on Firebase for a scalable infrastructure.

Example Firebase Authentication:

import { getAuth, signInWithEmailAndPassword } from "firebase/auth";

const auth = getAuth();
signInWithEmailAndPassword(auth, email, password)
  .then((userCredential) => {
    // Signed in
    const user = userCredential.user;
    console.log(user);
  })
  .catch((error) => {
    console.error(error);
  });

Frontend UI

The frontend is built using React.js with CSS for styling. It includes:

  • Home Page: Overview of the platform’s offerings.
  • Learning Section: Browse conceptual learning resources.
  • Career Section: View and apply for job opportunities.
  • Grants Section: Access information on loans and grants.

Key Components:

  • Header: Navigation bar for easy access to sections.
  • Footer: Contains platform-related links.
  • LearningCard, CareerCard, GrantCard: Display dynamic content.

Contributing

We welcome contributions from the community! Follow the steps below to contribute:

  1. Fork the repository.
  2. Create a new branch for your feature/fix.
  3. Commit your changes and push to your fork.
  4. Open a pull request with a description of your changes.

Community Guidelines

Please follow these guidelines to ensure a positive and productive environment:

  • Be respectful and inclusive.
  • Communicate clearly, especially in pull requests and issues.
  • Provide constructive feedback during code reviews.

FAQs

  1. How do I set up Firebase Authentication?

  2. Can I contribute to both frontend and backend?

    • Yes! We encourage contributions across the full stack.
  3. Where can I report issues?

    • Open an issue in the repository's Issues tab.

Feel free to modify or expand the wiki based on the needs of your repository!