/fluentai

Primary LanguageTypeScript

FluentAI

Fluent AI is an AI-integrated language learning platform that leverages the power of artificial intelligence to provide personalized learning experiences. This repository contains the frontend and backend codebase.

Table of Contents

Key Features

  • Interactive Learning: Comprehensive lessons covering alphabets, vocabulary, and phrases with audio-visual aids.
  • AI-Driven Conversations: Practice real-life conversations with AI-driven interactions and get instant feedback.
  • Progress Tracking: Keep track of your learning progress and milestones through detailed profiles.
  • Gamification: Engage with quests, earn XP, and track your position on the leaderboard.

Visual Overview

1. Welcome Screen

Welcome Screen

An inviting welcome screen to start your language learning journey.

2. Language Courses Selection

Language Courses Selection

Easily select from a variety of language courses offered on the platform.

3. Learning Dashboard

Learning Dashboard

Overview of learning units, with easy access to quests and shop.

4. Quiz Interface

Quiz Interface

Interactive quizzes to test and reinforce your learning.

5. Shop Interface

Shop Interface

Use earned points to purchase items in the shop, such as refilling hearts.

6. Leaderboard

Leaderboard

Track your ranking among other learners in the community.

7. Quests Overview

Quests Overview

Complete quests to earn XP and enhance your learning experience.

Tech Stack

Frontend

  • Framework: Next.js 14
  • Programming Language: TypeScript
  • Styling: Tailwind CSS with shadcn/ui library

Backend

  • Java: The primary programming language for backend development.
  • Spring Boot: Framework for building production-ready applications quickly.
  • PostgreSQL: Managed relational database for data persistence.
  • Maven: Build automation tool for Java projects.
  • Docker: Containerization for consistent deployment environments.
  • GitHub Actions: CI/CD for automated testing, building, and deployment.

Frontend Installation

To set up the frontend locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/BRAINIAC2677/fluentai.git
    cd fluentai/frontend
  2. Install dependencies:

    npm install
  3. Run the development server:

    npm run dev

    The application will be available at http://localhost:3000.

Backend Installation

Prerequisites

Before you begin, ensure you have the following installed:

  • Java 17 or higher
  • Maven 3.6.0 or higher
  • Docker
  • Git

Installation

  1. Clone the repository:
    git clone https://github.com/BRAINIAC2677/fluentai.git
    cd fluentai/backend
  2. Install dependencies:
    mvn install
  3. Configure database credentials:
    SPRING_DATASOURCE_URL=jdbc:postgresql://<your-database-url>:5432/<database-name>
    SPRING_DATASOURCE_USERNAME=<your-username>
    SPRING_DATASOURCE_PASSWORD=<your-password>
    

Running The Application

To run the application locally, use the following command:

mvn spring-boot:run

The application will be accessible at http://localhost:8080

Usage

Once the server is running, you can explore the platform's various features, such as signing up, selecting a language, and engaging with interactive lessons. The sidebar provides easy navigation to learning modules, quests, the shop, and leaderboards.

CI/CD Pipeline

This project utilizes GitHub Actions for CI/CD. Upon every commit push to the main branch, the following steps occur automatically:

  • Build: The backend is built using Maven.
  • Test: The project tests are run.
  • Dockerize: The application is packaged into a Docker container.
  • Push to Container Registry: The Docker image is pushed to the DigitalOcean private container registry. The CI/CD pipeline is defined in .github/workflows/

Deployment

DigitalOcean App Platform automatically detects new images in the private container registry and redeploys the latest version of the application. This ensures minimal downtime and continuous delivery of updates to the platform.

Contributing

We welcome contributions to enhance FluentAI. To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature-name).
  3. Make your changes.
  4. Commit your changes (git commit -m 'Add some feature').
  5. Push to the branch (git push origin feature/your-feature-name).
  6. Create a Pull Request.

Please ensure that your code adheres to the project's coding standards and conventions.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Contact

For questions, suggestions, or feedback, please reach out to: