A flashcard-based learning platform for software engineers.
DevCards helps software engineers learn and review technical concepts through short, focused flashcards.
The goal is simple: learn one concept at a time, build strong fundamentals, and keep expanding your engineering knowledge.
DevCards organizes software engineering knowledge into categories β skills β flashcards.
π Categories
Group related areas of software engineering.
π οΈ Skills
Represent specific technologies, concepts, or topics.
π Flashcards
Contain focused questions, concise answers, and detailed explanations.
π€ AI-generated Content
Gemini is used to help generate new flashcard content while avoiding duplicate questions.
DevCards aims to cover software engineering broadly, including:
π» Computer Science π§βπ» Programming Languages βοΈ Backend π¨ Frontend ποΈ Database ποΈ System Design βοΈ Cloud π₯οΈ Infrastructure π Security π Data Engineering π§ AI & Machine Learning π§ͺ Testing ποΈ Software Architecture π οΈ Developer Tools
Make sure you have:
- π Python 3.12+
- π’ Node.js
- π PostgreSQL
For AI content generation:
- β¨ Gemini API key
Go to the backend directory:
cd serviceCreate the environment file:
cp .env.example .envThen update .env with your local configuration and credentials.
Create a virtual environment:
python -m venv .venvActivate it.
.venv\Scripts\Activate.ps1Install dependencies:
pip install -r requirements.txtRun Django migrations:
python manage.py migrateCreate a superuser if needed:
python manage.py createsuperuserpython manage.py runserverThe backend will run on:
http://localhost:8000
Go to the frontend directory:
cd webInstall dependencies:
npm installStart the development server:
npm run devThe frontend will run on:
http://localhost:3000
The project already includes VS Code configuration for development.
You can use the included:
- π Workspace configuration
- π
launch.json βΆοΈ VS Code debugger
Open the workspace and use Run and Debug to start the configured development environment.
DevCards uses Gemini to generate flashcard content.
The generator is designed to:
- π― Select a skill
- π Retrieve existing questions
- π€ Ask Gemini to generate new content
- π« Avoid duplicate questions
- π Generate concise answers
- π Generate detailed explanations
- πΎ Save the generated content to PostgreSQL
The AI model can be configured through the environment:
GEMINI_MODEL=gemini-2.5-flashThis allows the model to be changed without modifying application code.
Each flashcard is designed with two levels of explanation:
A short and concise explanation designed to fit inside the flashcard.
A longer explanation that can cover:
- π What it is
- βοΈ How it works
- π‘ Why it exists
- π When to use it
- βοΈ Advantages and disadvantages
- π Alternatives
- ποΈ Practical considerations
- π» Examples
Markdown can be used in the learn_more content.
DevCards is built around a simple idea:
Software engineering is too broad to learn all at once.
Instead of trying to consume large amounts of documentation or tutorials, DevCards focuses on small, repeatable learning sessions.
π§ Learn a concept. π Review it later. π Repeat. π Build deeper engineering knowledge over time.