Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/mynameiscarsten/reddit-api-client

Reddit Client is a React Redux-based web application that allows users to search for posts on Reddit. Users can input a search term, and the app will display relevant Reddit posts.
https://github.com/mynameiscarsten/reddit-api-client

react reactjs reddit reddit-api redux

Last synced: about 2 months ago
JSON representation

Reddit Client is a React Redux-based web application that allows users to search for posts on Reddit. Users can input a search term, and the app will display relevant Reddit posts.

Awesome Lists containing this project

README

        

# Project Requirements:
- [ x ] Build the application using React and Redux
- [ x ] Version control your application with Git and host the repository on GitHub
- [ x ] Use a project management tool (GitHub Projects, Trello, etc.) to plan your work
- [ x ] Write a README (using Markdown) that documents your project including:
- [ x ] Technologies used
- [ x ] Features
- [ x ] Future work
- [ x ] Users can use the application on any device (desktop to mobile)
- [ x ] Users can use the application on any modern browser
- [ x ] Users can access your application at a URL
- [ x ] Users see an initial view of the data when first visiting the app
- [ x ] Users can search the data using terms
- [ x ] Users can filter the data based on categories that are predefined
- [ x ] Users are shown a detailed view (modal or new page/route) when they select an item
- [ x ] Users are delighted with a cohesive design system
- [ x ] OPTIONAL: Set up a CI/CD workflow to automatically deploy your application when the main branch in the repository changes

# Reddit Client

Reddit Client is a React Redux-based web application that allows users to search for posts on Reddit. Users can input a search term, and the app will display relevant Reddit posts.

![Dashboard](dashboard.png)

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
- [Technologies](#technologies)
- [Features](#features)
- [Contributing](#contributing)
- [Future Work](#future-work)

## Installation

1. **Clone the repository**

```bash
git clone https://github.com/yourusername/reddit-client.git
```

2. **Navigate to the project directory**

```bash
cd reddit-client
```

3. **Install dependencies**

```bash
npm install
```

## Usage

1. **Run the development server**

Start the development server to run the application:

```bash
npm start
```

The app should now be available in your browser at `http://localhost:3000`.

2. **Use the application**

- Enter your search term in the input field and click the "Search" button.
- The app will retrieve relevant Reddit posts and display them.
- Click on a post to view its details.

## Technologies

1. **React**: A JavaScript library for building user interfaces.

2. **Redux**: A state management library for managing the application's state.

3. **React-Redux**: A library that connects React components to the Redux store.

4. **Material-UI**: A popular React UI framework for designing and building user interfaces. It includes components, styles, and theming.

5. **React-Router-DOM**: A library for handling routing and navigation in a React application.

6. **CSS**: CSS for additonally styling components.

7. **Reddit API**: Data is fetched from the Reddit API to display posts.

## Features

- Search for Reddit posts based on a search term.
- View a list of relevant posts with titles and descriptions.
- Filter through posts
- Click on a post to see more details.
- Responsive design for mobile and desktop.

## Contributing

Contributions are welcome! Here are the steps to contribute to this project:

1. **Fork the repository**

Click the "Fork" button in the top right corner of the repository page.

2. **Clone your fork**

```bash
git clone https://github.com/MyNameIsCarsten/reddit-api-client.git
```

3. **Create a branch**

Create a new branch for your feature or bug fix:

```bash
git checkout -b feature/your-feature-name
```

4. **Make your changes**

Make the necessary code changes and improvements.

5. **Commit your changes**

```bash
git commit -m "Your commit message here"
```

6. **Push your changes**

```bash
git push origin feature/your-feature-name
```

7. **Create a Pull Request**

Go to the original repository and click "New Pull Request." Describe your changes and submit the pull request.

8. **Discuss and Review**

Participate in discussions and address any review comments.

9. **Merge Pull Request**

Once your pull request is approved, it will be merged into the main project.

## Future Work
- [ ] Write unit tests for your components using Jest and Enzyme
- [ ] Write end-to-end tests for your application
- [ ] Get 90+ scores on Lighthouse