Practicando provides a fun, customizable way to master Spanish verb conjugations. Other language learning apps repeat a limited set of flashcards while Practicando dynamically generates an unlimited number of practice questions based on the filters you set.
Practicando dynamically generates flashcards by chosing a pronoun, verb, and tenses. It provides immediate feedback of whether you answered a question correctly. If you answer wrong, it reveals the answer and gives you feedback on what mistake you made.
demo.mov
- Infinite practice: instead of learning to the test, a limitless set of flashcards provides you with ample practice with core verb conjugation skills.
- Customizability: Using the filters, you can customize the verbs, verb tenses, and pronouns you want to practice based on your learning goals.
- Track progress: The metrics page and history allows you to see your progress and review areas for improvement.
- Seamlessness: Allows you to fluidly go through flashcards without lifting your hands from the keyboard.
- Flexiblity under the hood: The source for the conjugations can be swapped. Also, errors in specific verbs/tenses can be patched.
Filters for customizing lesson
See past questions
Metrics for optimizing learning
backend/— FastAPI app (Python)frontend/— React app (with Tailwind)README.md— Setup and deployment instructions
- Health check endpoint in FastAPI
- React UI with API integration demo
- Postgres database (local and AWS RDS)
- Easy local dev and AWS deployment (Elastic Beanstalk or EC2)
- Install Python 3.9+
cd backend- Create a virtualenv:
python3 -m venv venv && source venv/bin/activate - Install dependencies:
pip install -r requirements.txt - Copy
.env.exampleto.envand set DB connection - Run:
uvicorn main:app --reload
- Install Node.js 18+
cd frontendnpm installnpm start
- Install Postgres locally, or use Docker
- Update DB connection string in backend
.env
- Create a Postgres DB on AWS RDS.
- Set up an Elastic Beanstalk Python environment.
- Build React app:
cd frontend && npm run build - Copy
frontend/buildtobackend/static(or similar). - Zip backend folder (with static files) and deploy to Elastic Beanstalk.
- Set environment variables (DB connection, etc) in Elastic Beanstalk console.
- FastAPI:
/healthendpoint returns status. - React: UI page shows API health status.
- See
backend/README.mdandfrontend/README.mdfor more details.


