Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

aialok/flashify

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
43 Commits
 
 
 
 
 
 
 
 

Repository files navigation

image

Flashify | Take u Forward Assignment

Flashify is a powerful web application designed to create and manage flashcards, enhancing learning and memorization processes.

Live Demo

Key Features

  • AI-Powered Flashcard Creation: Put your text and generate question and answer flashcards
  • Manual Creation Option: Create your manual cards
  • Flashcard Management:Easily view and edit your flashcards
  • Intuitive User Interface: Easy navigation and user-friendly experience

Tech Stack

Frontend

  • React with Vite

Backend

  • Node.js and Express.js

Database

  • MySQL for structured data storage
  • Redis for caching and performance optimization

Deployment

  • MySQL hosted on Railway
  • Backend deployed on Render
  • Frontend hosted on Cloudflare Pages

AI Integration

  • OpenAI API for intelligent flashcard generation

Additional Tools

  • Zod for data validation
  • Sequelize as the ODM

Architecture:

image

File Structure

|-- backend
|     -- src
|       |-- config
|       |-- controllers
|       |-- middlewares
|       |-- migrations
|       |-- models
|       |-- routes
|       |   `-- v1
|       |-- seeders
|       `-- services
|-- frontend
    |-- dist
    | -- src
        |-- components
        |-- hooks
        |-- pages
.github
  -- workflows

Setting up project

Clone the project

git clone https://github.com/aialok/flashify.git

Install dependencies

  • Move to frontend folder and run the command - pnpm install
  • Moce to backend folder and run the command - pnpm install

Setup ENV File

  • Backend
      OPEN_AI_API_KEY=
      DB_USERNAME=
      DB_PASSWORD=
      DB_DATABASE=
      DB_HOST=
      DB_PORT=
      REDIS_USERNAME=
      REDIS_PASSWORD=
      REDIS_HOST=
      REDIS_PORT=
      NODE_ENV=development | test | production
    
  • Frontend
    VITE_BACKEND_URI=http://localhost:3000

Database Setup

  • Make sure to have add all the env variable
  • Run command to migrate your database setup : npx sequelize-cli db:migrate || pnpm dlx sequelize-cli db:migrate
  • Make sure you have redis-cli and mysql in local if you are using localhost
  • Wohoo ! you are done : )

Local Database:

  • Tables

image

  • Pack Table

image

  • Flashcards Table

image

Run your backend and frontend server

  • cd to backend pnpm run dev
  • cd to frontend pnpm run dev

Wohoo ! congrats you are done with setup :)

Screenshots

Homepage image Create Flashcards image FlashCard Views image Edit Flashcards image Generate with AI image

About

Flashify is a powerful web application designed to create and manage flashcards, enhancing learning and memorization processes. | Take u forward Assignment

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.