FlashLang is a web application that allows users to create flashcards they can use to aid in language learning (vocabulary, grammar, etc), trivia or other educational purposes.
Users can create, edit, and organize flashcards into decks, and then use those decks to study and review the material. Users can also use AI to generate decks based on specific topics or themes.
- Credential authentication
- Create study sets (decks) and flashcards
- Edit and delete flashcards and study sets
- Create study sets using Gemini to provide AI Flashcard generation
- Using OpenAI to adjudicate answers in practice mode
- Statistics tracking via dashboard
- Dictation of answers using the Web Speech Browser API
- Nuxt4, Vue3
- Tailwind CSS
- Gemini-Flash API
- Open AI API
- NeonDB, Postgres
- Drizzle ORM
- @sidebase/nuxt-auth
- Nuxt Test Utils and Vitest
- Vercel
- Web Speech API
- Node.js v18 or higher
- A NeonDB account and connection string (for database hosting)
- Credentials for Gemini-Flash API
- Credentials for Open AI API
Create a .env file in the root directory and add the following environment variables:
# Database connection string
DATABASE_URL=*your_neon_db_connection_string*
AUTH_SECRET=*your_secret_key - you can generate a string*
AUTH_ORIGIN=http://localhost:3000/api/auth
GEMINI_API_KEY=*obtain from google console*
OPENAI_API_KEY=*obtain from openai*Run database migrations using Drizzle ORM:
npx drizzle-kit generate
npx drizzle-kit migrateMake sure to install dependencies:
# npm
npm install
Start the development server on http://localhost:3000:
# npm
npm run dev# npm
npm run testForthcoming...