Skip to content

Jak57/kiwi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

star

Kiwi

An AI Powered Digital Playground Where Education Meets Imagination

Overview

The Kiwi is a solution that uses AI to transform children's digital experiences, enhancing learning and creativity. It stands as a beacon of hope, showcasing how AI can be harnessed to address the complex relationship between children and technology in today's digital age.

Key points of Kiwi :

  • Conventional Learning: Old learning but with new technologies
  • Creative Learning: Learning with innovations
  • Play & Fun: Games for learning
  • Scalable Structure: Microservice in Java

Watch a demo presentation of the app here.
A PDF generated by our app is shown here.

Features

  1. Learning & Fun
    • Draw n Learn: Word Writing Practice Through Drawing
    • Grammar Guru: Sentence Creation and Error Correction
  2. Creative Corner
    • Magical Story: Give Prompts and Generate Graphical Storybook PDFs
    • Talky Pal: Interact with an Avatar Bot for Learning and Conversations
    • Chat Buddy: Engage in Personalized Chats with Your Kiwi Buddy
  3. Play & Explore
    • Pop Count: Bubble Popping Game with Numbered Bubbles
    • Fun Cam: Capture, Morph, and Add Fun Filters with Your Camera
    • Anim Land: Create Animations by Combining and Adding Actions to GIFs
    • Picture Puzzle: Solve Slide Puzzles with Images and Videos
  4. Others
    • Storybook Manager: PDF Storage, Search, Deletion, and Text-to-Speech
    • User & Profile Management: User Creation with Email Verification and Multi-Profile Support
    • Authentication & Authorization: JWT Token-Based Security

System Design

This microservices-based project comprises four core services: UserService, PdfService, WritingService, and BotService, each hosted on separate servers to ensure scalability and optimal performance. Additionally, two essential modules, the Gateway and Discovery Server, are employed for inter-service communication and load balancing.

Service Responsibilities:

UserService: This service handles user authentication, authorization, and profile management.

BotService: Equipped with AI capabilities, BotService interprets and responds to user commands intelligently.

PdfService: PdfService leverages AI for image generation and manages storybook PDFs.

WritingService: This service integrates OCR functionality, accepting images and returning extracted text.

The project relies on two databases, User and Pdf, closely linked with User and Pdf services. Firebase Cloud Service is also utilized for enhanced functionality.

The following diagram visually represents the end-to-end flow of the project, illustrating the interactions between services, databases, and external resources.
System Architecture

The following diagram illustrates an example of how a storybook is generated through communication with multiple services in our system.
Storybook Creaton Flow The project focuses on modularity security, with authentication measures, and load balancing in place to protect user data and ensure a safe user experience.

Technologies and Dependecies

Feature Framework / Tool
Frontend Next.js
Backend Java Spring Boot, Spring Cloud Netflix Eureka, Spring Cloud Gateway, Spring Security
Database & Storage MongoDB, Firebase Storage (for PDFs)
CSS Framework & Design Tools Framework: Tailwind CSS; Design tool: Canva
AI Models Text: GPT-3.5-turbo; Image Generation: DALL-E
Creativity-based Features OCR: Microsoft TrOCR Model from Hugging Face
Animation & Games p5.js
Speech-related Speech to Text: React-speech-recognition; Text to Speech: SpeechSynthesis
Others PDF Creation: jsPDF

(Variations in voices differ according to the browser you are using. For example, Edge provides children's voice which is unavailable in Chrome. Visit this from target browser to get all the supporting voices)

Installation and Configuration

  1. Clone the Project:

  2. Configure Environment Variables:

    • Navigate to the project's root directory.
    • In the "frontend" folder, update the .env variables with your API keys and required variables.
  3. Microservice Configuration:

    • Go to the "microservice" folder.
    • Update the secrets in the secret.properties files located in {ServiceModule}/src/main/resources.
  4. Frontend Setup:

    • Open a terminal in the "frontend" folder.
    • Install project dependencies with:
      yarn
      
    • Start the frontend development server with:
      yarn dev
      
  5. Backend Setup:

    • Install dependencies for the backend from the pom.xml file.
    • Run the main files of all modules. Consider using tools like IntelliJ for building and running the system.

Conclusion

The project holds great promise with scalable features and a focus on early tech education for kids, fostering creativity in a safe environment. However, it faces challenges like limited access to image generation APIs, API call restrictions, and the need for efficient models. Despite these hurdles, the project aims to shape a positive tech-savvy future for children.

Team Aviato

Name University Session LinkedIn GitHub
Nowshin Alam Owishi SUST CSE 2018-19 LinkedIn owishiboo
Moksedur Rahman Sohan SUST CSE 2018-19 LinkedIn ShikariSohan

Thank You.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 77.8%
  • Java 16.9%
  • CSS 4.5%
  • JavaScript 0.8%