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.
- π€ 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.
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.
- π₯οΈ 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
Use the following pre-configured accounts to explore the application:
| 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.
- Clone the repository and navigate to the project directory:
git clone https://github.com/koding88/LinguaConnect cd LinguaConnect
- Navigate to the backend directory:
cd backend - Create the
.envfile:touch .env
- Populate the
.envfile 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 - Install the necessary dependencies:
npm install
- Build the backend project:
npm run build
- Start the backend in production mode:
npm run prod
- Navigate to the
flask_appdirectory:cd ../flask_app - Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
- Windows:
venv\Scripts\activate
- Linux/Mac:
source venv/bin/activate
- Windows:
- Create the
.envfile:touch .env
- Add the following environment variables to the
.envfile: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 - Install the required dependencies:
pip install -r requirements.txt
- Launch the Flask application:
python run.py
- Navigate to the frontend directory:
cd ../frontend - Create the
.envfile:touch .env
- Add the following environment variables to the
.envfile:VITE_API_BACKEND_URL=http://localhost:3000 VITE_AI_URL=http://localhost:5555 - Install frontend dependencies:
npm install
- Build the frontend project:
npm run build
- Serve the production build:
serve -s dist -l 5173
We welcome and appreciate contributions to this project! To get started, please follow these guidelines:
- Fork the Repository: Click the "Fork" button at the top right of the repository page to create your own copy of the project.
- 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
- Create a Branch: Before making any changes, create a new branch for your feature or bug fix:
git checkout -b your-feature-branch
- Implement Your Changes: Develop your feature or fix the bug, ensuring that your code adheres to the project's coding standards.
- Commit Your Changes: Commit your changes with a descriptive message:
git commit -m "Add a brief description of your changes" - Push to Your Fork: Push your changes to your forked repository:
git push origin your-feature-branch
- 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.
This project is licensed under the MIT License. For more details, please refer to the LICENSE file.