Skip to content

koding88/LinguaConnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LinguaConnect

LinguaConnect is a premier social networking platform designed to connect language learners across the globe. It offers an interactive environment where users can document their language learning journeys, engage with native speakers, and participate in meaningful conversations, all enhanced by AI-powered language learning features.

🌟 Key Features

  • πŸ‘€ Comprehensive User Profiles: Customize profiles with language preferences and learning objectives.
  • πŸ“ Multilingual Post Sharing: Share posts with support for multiple languages.
  • πŸ’¬ Real-Time Messaging: Engage in live conversations for effective language practice.
  • πŸ—£οΈ Topic-Based Discussions and Communities: Join and participate in discussions centered around specific language topics and interests.
  • 🀝 Follow System: Connect and follow other learners to build a supportive learning network.
  • 🎨 Avatar Customization and Profile Management: Personalize avatars and manage profile settings seamlessly.
  • πŸ€– AI-Powered Assistance: Receive language learning assistance and corrections driven by artificial intelligence.
  • πŸ—£οΈ Intelligent Conversation Practice: Utilize LangChain for advanced and interactive conversation practice.

πŸ› οΈ Technology Stack

Frontend

React Vite Zustand React Router TailwindCSS Shadcn/UI Socket.IO Chart.js

Backend (Node.js)

Node.js Express.js MongoDB Mongoose JWT Socket.IO Cloudinary Redis Passport Multer

AI/ML Service (Flask)

Flask LangChain Together AI MongoDB Python

Real-time Features

Socket.IO WebRTC Stringee

Cloud Services

MongoDB Atlas Redis Cloud Cloudinary Together AI

The platform is engineered to enhance the language learning experience by fostering engagement and social interaction among learners with shared interests and objectives. Leveraging advanced AI technology, LinguaConnect provides personalized learning pathways and intelligent language assistance to facilitate effective and enjoyable language acquisition.

πŸ—οΈ Architecture

  • πŸ–₯️ Frontend: Single Page Application (SPA)
  • βš™οΈ Backend: RESTful API and WebSocket integration
  • πŸ€– AI Service: Microservice Architecture
  • πŸ—„οΈ Database: Document-based NoSQL
  • ⚑ Cache: In-memory data store
  • ☁️ Storage: Cloud-based object storage

πŸ‘₯ Demo Accounts

Use the following pre-configured accounts to explore the application:

Email Username Password Role
24283032@hulas.co admin 1234567aB Admin
swalker@yahoo.com linda26 1234567aB User
john63@hotmail.com david55 1234567aB User
williamspamela@gmail.com crystal13 1234567aB User

Note: These accounts are intended for demonstration purposes only. Please use your own credentials in a production environment.

πŸš€ Getting Started

Clone the Repository

  1. Clone the repository and navigate to the project directory:
    git clone https://github.com/koding88/LinguaConnect
    cd LinguaConnect

Backend Setup

  1. Navigate to the backend directory:
    cd backend
  2. Create the .env file:
    touch .env
  3. Populate the .env file with the following environment variables:
    # Server Configuration
    PORT=3000
    BASE_URL=http://localhost:3000
    CLIENT_URL=http://localhost:5173
    FLASK_APP_URL=http://localhost:5555
    
    # Database Configuration
    MONGO_URI=your_key
    REDIS_URL=your_key
    
    # Authentication
    JWT_SECRET=your_key
    REFRESH_TOKEN_SECRET=your_key
    
    # Google OAuth Configuration
    GOOGLE_CLIENT_ID=your_key
    GOOGLE_CLIENT_SECRET=your_key
    GOOGLE_CALLBACK_URL=your_key
    
    # Google Mail Configuration
    GOOGLE_CLIENT_ID_MAIL=your_key
    GOOGLE_CLIENT_SECRET_MAIL=your_key
    GOOGLE_REFRESH_TOKEN_MAIL=your_key
    SEND_MAIL_ACCOUNT=your_key
    
    # Cloudinary Configuration
    CLOUDINARY_CLOUD_NAME=your_key
    CLOUDINARY_API_KEY=your_key
    CLOUDINARY_API_SECRET=your_key
    
    # Stringee Configuration
    STRINGEE_API_KEY_SID=your_key
    STRINGEE_API_KEY_SECRET=your_key
    
    # Environment
    NODE_ENV=production
    
  4. Install the necessary dependencies:
    npm install
  5. Build the backend project:
    npm run build
  6. Start the backend in production mode:
    npm run prod

Flask App Setup

  1. Navigate to the flask_app directory:
    cd ../flask_app
  2. Create a virtual environment:
    python -m venv venv
  3. Activate the virtual environment:
    • Windows:
      venv\Scripts\activate
    • Linux/Mac:
      source venv/bin/activate
  4. Create the .env file:
    touch .env
  5. Add the following environment variables to the .env file:
    FLASK_APP=app
    FLASK_ENV=development
    BACKEND_URL=http://localhost:3000
    MONGO_URI=your_key
    TOGETHER_API_KEY=your_key
    TOGETHER_MODEL=meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo
    
  6. Install the required dependencies:
    pip install -r requirements.txt
  7. Launch the Flask application:
    python run.py

Frontend Setup

  1. Navigate to the frontend directory:
    cd ../frontend
  2. Create the .env file:
    touch .env
  3. Add the following environment variables to the .env file:
    VITE_API_BACKEND_URL=http://localhost:3000
    VITE_AI_URL=http://localhost:5555
    
  4. Install frontend dependencies:
    npm install
  5. Build the frontend project:
    npm run build
  6. Serve the production build:
    serve -s dist -l 5173

🀝 Contributing

We welcome and appreciate contributions to this project! To get started, please follow these guidelines:

  1. Fork the Repository: Click the "Fork" button at the top right of the repository page to create your own copy of the project.
  2. Clone Your Fork: Use the following command to clone your forked repository to your local machine:
    git clone https://github.com/your-username/repository-name.git
  3. Create a Branch: Before making any changes, create a new branch for your feature or bug fix:
    git checkout -b your-feature-branch
  4. Implement Your Changes: Develop your feature or fix the bug, ensuring that your code adheres to the project's coding standards.
  5. Commit Your Changes: Commit your changes with a descriptive message:
    git commit -m "Add a brief description of your changes"
  6. Push to Your Fork: Push your changes to your forked repository:
    git push origin your-feature-branch
  7. Create a Pull Request: Navigate to the original repository and click on "New Pull Request". Select your branch and submit the pull request for review.

Thank you for contributing to LinguaConnect! Your efforts help make our platform better for everyone.

πŸ“„ License

This project is licensed under the MIT License. For more details, please refer to the LICENSE file.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors