A customizable, structure-first application for mastering new topics through index-card style learning.
Athena is designed to give learners control over their training material. Unlike rigid learning platforms, Athena allows users to build their own curriculum from the ground up. Whether you are learning a new language, studying for certifications, or onboarding employees, Athena provides the framework to organize complex topics into manageable, bite-sized "index cards."
- Structure First: Knowledge is easier to retain when it is organized hierarchically.
- Active Recall: Using an index-card/flashcard interface to test knowledge rather than just passively reading it.
- User-Driven Content: The user is the architect of their own learning path.
Athena uses a strict three-tier hierarchy to keep learning materials organized:
- Course / Lecture: The top-level container for a specific subject (e.g., "Advanced Biology" or "Introduction to Python").
- Chapter: Logical subdivisions within a Course to group related concepts (e.g., "Cell Structures" or "List Comprehensions").
- Index Card: The atomic unit of learning. A Question & Answer combination used for study and evaluation.
- Topic Management: Create high-level subjects and drill down into specific sub-topics.
- Index-Card Interface:
- Front/Back card design for questions and answers.
- Support for rich text, code snippets, and images.
- Voice Interaction & Evaluation: The app reads questions aloud, allows users to respond via voice, and provides AI-driven evaluation on correctness and feedback.
- Training Mode: Specific modes for reviewing cards (e.g., Shuffle, Spaced Repetition).
- Progress Tracking: Visual indicators of mastery for each topic.
- Language: TypeScript (Full Stack)
- Frontend: React.js
- Design System: Tailwind CSS
- Backend: Node.js
- API: tRPC and Fastify
- Database: SQLite
- Testing: vitest
See ARCHITECTURE.md for more information on the architecture of the application.
- Node.js (v18 or higher)
- pnpm
-
Clone the repository:
git clone https://github.com/esukram/athena.git -
Navigate to the project directory:
cd athena -
Install dependencies: pnpm install
-
Start the development server: pnpm dev
Distributed under the GNU Affero General Public License v3.0. See LICENSE for more information.