Giter Site home page Giter Site logo

d_talks's Introduction

D-Talks

D-Talks is a comprehensive web application designed for learners to ask questions, share knowledge, and connect with fellow learners. Built with Next.js, this project integrates various technologies to provide a seamless and interactive experience.

Features

  • Ask Doubts: Users can ask questions with textual and photographic content.
  • Answer Questions: Anyone can provide answers, which can be upvoted or downvoted by other users.
  • Generate Answers: Use the Gemini integration to generate answers to questions.
  • Blog Section: Write and read blogs. If you don’t have a blog, you can use the Gemini button to summarize articles.
  • User Dashboard: Track user reputation based on the number of answers and upvotes.
  • Chat Section: Connect with fellow learners through real-time chat.
  • Video Calls: Initiate video calls with other users if both are online, using WebRTC and Socket.IO.
  • Real-Time Updates: Real-time updates for answers and upvotes using Pusher and pusher-js.

Technologies Used

  • Frontend: Next.js
  • Backend: Express and Next.js API routes
  • Databases:
    • MongoDB for major data storage
    • PostgreSQL for handling user details
  • Authentication: Firebase Authentication (Email and Google)
  • Real-Time Communication:
    • WebRTC and Socket.IO for video calls
    • Pusher and pusher-js for real-time chat and updates
  • AI Integration: Gemini for generating and summarizing content

Getting Started

Prerequisites

  • Node.js and npm/yarn
  • MongoDB
  • PostgreSQL
  • Firebase project setup

Installation

  1. Clone the repository:

    git clone https://github.com/your-repo/d-talks.git
  2. Navigate to the project directory:

    cd d-talks
  3. Install dependencies:

    npm install
    # or
    yarn install
  4. Set up environment variables:

    Create a .env.local file in the root directory and add the following variables:

    NEXT_PUBLIC_PUSHER_APP_KEY=your_pusher_key
    NEXT_PUBLIC_PUSHER_APP_CLUSTER=your_pusher_cluster
    NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
    NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
    NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id
    NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket
    NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id
    NEXT_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id
    MONGO_URI=your_mongo_db_uri
    POSTGRES_URI=your_postgres_db_uri
    
  5. Start the development server:

    npm run nodemon
    # or
    yarn dev

    Visit http://localhost:3000 to view the application.

Usage

  • Asking a Question: Navigate to the question section and submit your query with text and/or image.
  • Answering a Question: View questions and provide your answers. You can upvote or downvote answers.
  • Blogging: Access the blog section to write or read blogs. Use Gemini for summarizing articles.
  • Chat and Video Calls: Connect with other users through the chat feature. Initiate video calls when both users are online.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments


d_talks's People

Contributors

shuklamaneesh23 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.