LingoLearn was created as a terminal-based learning simulator to explore and master the fundamental pillars of Object-Oriented Programming (OOP) in Java. The motivation was to move away from theoretical definitions and build a modular, extensible, and clean application that models a real-world SaaS language learning platform.
This project allowed us to apply structural design principles, separate business logic from console interactions, and implement gating algorithms that restrict learning pathways until foundational exercises are solved.
- OOP Principle Demonstrations:
- Abstraction: Implemented through abstract base class
core.Lessonand decoupled interfacescore.Assessableandcore.Trackable. - Encapsulation: Private class attributes, clean constructor mapping, and strict getter/setter interfaces across all entities (such as
UserandLessonProgress). - Inheritance: Subclasses (
GrammarLesson,VocabularyLesson,PronunciationLesson) extending parent structures. - Polymorphism: Dynamic method dispatch for showing lesson contents and evaluating user quizzes dynamically.
- Abstraction: Implemented through abstract base class
- Diverse Course Modules: Multi-faceted exercises teaching sentence syntax, vocabulary definitions, and phonetic pronunciations.
- Progress Lock & Level Gating: Restricts access to advanced levels until the prerequisites are cleared by the user.
- Evaluation & Scoring Engine: Real-time scoring out of 100%, passing thresholds, and limited assessment retries.
- Daily Challenges: Tracking systems looking at daily progress logs to encourage consistent practice.
- Programming Language: Java SE (17 or higher)
- Compilation & Execution: Java Virtual Machine (JVM) & JDK compiler toolchain
- User Interface: CLI (Command Line Interface)
- Java Development Kit (JDK 17 or higher) installed on your system.
- Clone this repository locally:
git clone https://github.com/Ganesh2006646/language-learning-application.git cd "language-learning-application/Language Learning Application"
- Create the output directory:
mkdir bin
- Compile the Java source code files:
javac -d bin src/**/*.java
- Run the compiled class binaries:
java -cp bin app.Main
LingoLearn successfully brings theory to practice by implementing pure OOP concepts in a structured console environment. Gaining hands-on experience in defining abstract boundaries, packaging classes, and debugging terminal-based states layed the groundwork for understanding how large-scale enterprise services are modeled.