Recalla is a web-based flashcard application built to streamline the study process. Leveraging the power of spaced repetition, it helps users retain information over time by intelligently scheduling review sessions. Whether you're a student preparing for exams, a professional learning new skills, or anyone looking to memorize key concepts, Recalla is your go-to tool for effective learning.
Built with modern technologies like Next.js and Supabase, Recalla offers a seamless user experience with features like PDF-based flashcard generation and personalized study sessions.
- Spaced Repetition: Automatically schedules reviews based on your learning progress.
- PDF Upload: Generate flashcards directly from uploaded PDF files and text.
- Study Sessions: Track your progress with unique session IDs and review stats.
- User Authentication: Secure login via Supabase Auth.
- Responsive Design: Works on desktop, tablet, and mobile devices.
- Customizable: Tailor flashcards and sessions to your needs.
Follow these steps to set up Recalla locally:
- Node.js (v20 or higher)
- npm or yarn
- A Supabase account for backend services
-
Clone the Repository
git clone https://github.com/MungaSoftwiz/recalla.git cd recalla
-
Install Dependencies
npm install
or
yarn install
-
Set Up Environment Variables Create a
.env
file in the root directory and add your Supabase credentials:NEXT_PUBLIC_SUPABASE_URL=your-supabase-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
Get these from your Supabase project settings.
-
Run the Development Server
npm run dev
or
yarn dev
Open http://localhost:3000 in your browser to see the app.
- Sign Up / Log In: Authenticate using your email via Supabase Auth.
- Upload a PDF: On the welcome screen, insert a text or upload a PDF file to generate flashcards.
- Study: Navigate to the study page (
/flashcards/study?sessionId=<id>
) to review your flashcards. - Track Progress: Monitor your retention with session-based progress updates.
Example workflow:
- Upload
biology_notes.pdf
. - Recalla generates 20 flashcards and assigns a
sessionId
. - Study at
http://localhost:3000/flashcards/study?sessionId=abc123
.
Customize Recalla by tweaking these optional settings:
- Supabase Storage: Adjust the
pdfs
bucket settings inuploadFile
(e.g., file name, file size limits). - API Endpoint: Modify
/api/flashcards/pdf
logic for custom flashcard generation. - Styling: Update Tailwind CSS classes in
app/layout.css
or component files.
We’d love your help to improve Recalla! To contribute:
- Fork the repo and create a branch for your changes.
- Submit a pull request with a clear description.
For detailed instructions, see CONTRIBUTING.md
.
This project is licensed under the MIT License. See the LICENSE
file for details.
- Next.js for the powerful React framework.
- Supabase for authentication and storage.
- Tailwind CSS for styling.
- All contributors and users who make Recalla possible!