10x-cards is a flashcard generation and management application designed to streamline the creation of high-quality educational flashcards. The project leverages AI models to automatically generate flashcard suggestions from user-provided text while also offering functionalities for manual flashcard creation, editing, and deletion. This facilitates an efficient learning process based on spaced repetition.
- Frontend: Astro 5, React 19, TypeScript 5, Tailwind 4, Shadcn/ui
- Backend: Supabase (PostgreSQL, Authentication)
- AI Integration: Openrouter.ai for LLM interactions
- Testing:
- Unit & Component Integration: Vitest, React Testing Library
- End-to-End, API & Security: Playwright
- CI/CD and Hosting: GitHub Actions and DigitalOcean
- Clone the repository:
git clone <repository-url>
- Navigate to the project directory:
cd 10x_cards - Install dependencies:
npm install
- Ensure you are using the correct Node.js version:
If you have nvm installed, run:
nvm use
- Run the development server:
npm run dev
- Build and preview:
- To build the project:
npm run build
- To preview the production build:
npm run preview
- To build the project:
- dev:
astro dev- Starts the development server. - build:
astro build- Builds the project for production. - preview:
astro preview- Previews the production build. - astro:
astro- CLI command for Astro. - lint:
eslint .- Runs the linter. - lint:fix:
eslint . --fix- Runs the linter and fixes issues. - format:
prettier --write .- Formats the codebase. - test:unit:
vitest- Runs unit and component tests. - test:e2e:
playwright test- Runs end-to-end tests. - test:
npm run test:unit && npm run test:e2e- Runs all tests.
The project aims to provide:
- Automatic Flashcard Generation: Generate flashcard suggestions using AI models by processing user-provided text.
- Manual Flashcard Management: Create, edit, and delete flashcards manually.
- User Authentication: Secure user registration, login, and account management.
- Spaced Repetition: Integration of a spaced repetition algorithm for effective learning sessions.
- Analytics: Collection of data on generated and accepted flashcards for performance tracking.
The project is currently in its MVP stage with core features under active development.
This project is licensed under the MIT License.