Giter Club home page Giter Club logo

up_your_english's Introduction

Up Your English

Enhance your English proficiency with our comprehensive tool. This application combines the power of modern technologies and artificial intelligence to provide an interactive learning experience.

Screenshots

Screenshot

Quickstart

  • Running the Project with Docker
  • Execute the following command to build and run the project:
export OPENAI_API_KEY=<your_key>
docker compose up --build

Continuous Integration (CI)

Overview

We utilize GitHub Actions to automate our testing and integration processes.

Backend

  • Tools: Ruff (black, isort, flake8), Pytest
  • Operations: Automated testing is performed on each push and pull request.

Frontend

  • Tools: Biome, ESLint, Jest
  • Operations: Automated testing is performed on each push and pull request.

Architecture

Backend

  • Framework: FastAPI/Python, Redis
  • Structure: MVC architecture (Endpoint -> Service -> Adapters)
  • Features:
    • REST API and Websockets for asynchronous chat functionalities.
    • Redis queue with brpop to handle websocket messages.
    • Session management using cookies.
  • Libraries: Utilizes LangChain and OpenAI for AI-driven operations, streaming responses via websockets to the React client.

Frontend

  • Framework: Vite / React, TypeScript
  • UI Components: Ant Design (Antd)
  • Chat: react-chat-components library
  • State Management: React Query, React Use Websocket, Context Providers

Roadmap

Testing:

  • Add unit tests for the backend with Pytest.
  • Incorporate smoke tests for the frontend using Jest.
  • Develop automated tests with Playwright for end-to-end testing.

Deployment:

  • Implement Continuous Deployment (CD) with GitHub Actions, enabling deployment via releases or manual triggers.

Infrastructure:

  • Decouple adapters and backend API logic into a microservice architecture, potentially utilizing Kafka or RabbitMQ.
  • Implement authentication enhancements using HTTP-only cookies or JWT tokens for mobile.
  • Integrate a database to persist chat history and other relevant data.

AI Enhancements:

  • Enhance AI functionalities to support multiple prompts within a single session.

This revised README is designed to provide a clear, professional description of your project, its current capabilities, and future development plans. The sections are organized to guide readers easily from setup instructions to deeper technical details.

up_your_english's People

Contributors

vsdudakov avatar

Stargazers

Pavel avatar Bartosz Sławecki avatar Rinat 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.