An open API service indexing awesome lists of open source software.

https://github.com/hum2a/flashcards

A modern digital flash cards application that speeds up revision time by 20x
https://github.com/hum2a/flashcards

css expressjs firebase firebase-auth firestore-database html javascript nodejs npm react typescript

Last synced: about 1 month ago
JSON representation

A modern digital flash cards application that speeds up revision time by 20x

Awesome Lists containing this project

README

          

# ๐ŸŽด Flashcards - Study Smarter

[![React](https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)](https://reactjs.org/)
[![Firebase](https://img.shields.io/badge/Firebase-FFCA28?style=for-the-badge&logo=firebase&logoColor=black)](https://firebase.google.com/)
[![Material-UI](https://img.shields.io/badge/Material--UI-0081CB?style=for-the-badge&logo=material-ui&logoColor=white)](https://mui.com/)
[![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![PWA](https://img.shields.io/badge/PWA-5A0FC8?style=for-the-badge&logo=pwa&logoColor=white)](https://web.dev/progressive-web-apps/)

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Netlify Status](https://api.netlify.com/api/v1/badges/your-badge-id/deploy-status)](https://app.netlify.com/sites/your-site-name/deploys)

## ๐Ÿ“ Table of Contents

- [โœจ Features](#-features)
- [๐Ÿš€ Getting Started](#-getting-started)
- [๐Ÿ› ๏ธ Installation](#%EF%B8%8F-installation)
- [โš™๏ธ Configuration](#%EF%B8%8F-configuration)
- [๐Ÿ“ฑ Usage](#-usage)
- [๐Ÿงช Testing](#-testing)
- [๐Ÿ—๏ธ Project Structure](#%EF%B8%8F-project-structure)
- [๐Ÿค Contributing](#-contributing)
- [๐Ÿ“„ License](#-license)
- [๐Ÿ‘ฅ Authors](#-authors)
- [๐Ÿ™ Acknowledgments](#-acknowledgments)

## โœจ Features

| Feature | Description |
|---------|-------------|
| ๐ŸŽจ Modern UI | Beautiful, responsive design with Material-UI |
| ๐Ÿ“ฑ PWA Support | Installable on any device |
| ๐Ÿ”„ Real-time Sync | Instant updates across devices |
| ๐Ÿ“Š Progress Tracking | Monitor your learning journey |
| ๐ŸŽฏ Spaced Repetition | Optimized learning algorithm |
| ๐Ÿ” Search & Filter | Find cards quickly |
| ๐ŸŒ™ Dark Mode | Eye-friendly study sessions |
| ๐Ÿ“ค Import/Export | Share decks with others |

## ๐Ÿš€ Getting Started

### Prerequisites

- Node.js (v14 or higher)
- npm (v6 or higher)
- Git

### ๐Ÿ› ๏ธ Installation

1. **Clone the repository**
```bash
git clone https://github.com/your-username/flashcards.git
cd flashcards
```

2. **Install dependencies**
```bash
npm install
```

3. **Set up environment variables**
```bash
cp .env.example .env
# Edit .env with your configuration
```

4. **Start the development server**
```bash
npm start
```

## โš™๏ธ Configuration

### Environment Variables

Create a `.env` file in the root directory with the following variables:

```env
REACT_APP_API_URL=http://localhost:5000/api
REACT_APP_FIREBASE_API_KEY=your-api-key
# ... (see .env.example for all variables)
```

## ๐Ÿ“ฑ Usage

### Development

```bash
npm start
```

### Production Build

```bash
npm run build
```

### Testing

```bash
npm test
```

## ๐Ÿงช Testing

We use Jest and React Testing Library for our tests. Run the test suite with:

```bash
npm test
```

For coverage reports:

```bash
npm run test:coverage
```

## ๐Ÿ—๏ธ Project Structure

```
src/
โ”œโ”€โ”€ components/ # Reusable UI components
โ”œโ”€โ”€ pages/ # Page components
โ”œโ”€โ”€ styles/ # CSS and styling files
โ”œโ”€โ”€ utils/ # Utility functions
โ”œโ”€โ”€ hooks/ # Custom React hooks
โ”œโ”€โ”€ context/ # React context providers
โ”œโ”€โ”€ services/ # API and service integrations
โ””โ”€โ”€ assets/ # Static assets
```

## ๐Ÿค Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.

## ๐Ÿ‘ฅ Authors

- **Your Name** - *Initial work* - [YourGitHub](https://github.com/your-username)

See also the list of [contributors](https://github.com/your-username/flashcards/contributors) who participated in this project.

## ๐Ÿ™ Acknowledgments

- [Create React App](https://github.com/facebook/create-react-app)
- [Material-UI](https://mui.com/)
- [Firebase](https://firebase.google.com/)
- [React Router](https://reactrouter.com/)

---

[![forthebadge](https://forthebadge.com/images/badges/built-with-love.svg)](https://forthebadge.com)
[![forthebadge](https://forthebadge.com/images/badges/made-with-javascript.svg)](https://forthebadge.com)
[![forthebadge](https://forthebadge.com/images/badges/uses-git.svg)](https://forthebadge.com)