/betterreads-fe

A platform for readers

Primary LanguageJavaScriptMIT LicenseMIT

React Maintainability Test Coverage code style: prettier PRs Welcome

Readrr is a social media platform that allows users to connect with other readers alike, search its database of books, browse recommendations, and manage their own library.

Installation

  1. Once you have cloned the repository, download the dependencies with npm install.
  2. Start the server with npm start.

Environment Variables

In order to get the app running locally and working with the backend, you need to set this environment variable in a .env.local file.

REACT_APP_API_URL=http://localhost:5000

Documentation

Tech Stack

  • React - fast and reusable
  • Redux - global state management
  • styled-components - customizable styling
  • Express - simple and effective
  • PostgreSQL - scalability and data persistence
  • AWS - robust and tailored

See this repo for details on the backend of our project.

See this repo for details on the data science of our project.

APIs

  • OAuth 2.0
  • Google Books API
  • Readrr API

Google Analytics

  • Import the necessary functions from the correct directory.
    import { PageView, Events } from './components/tracking';
  • PageView() - tracks page views
    useEffect(() => {
    	PageView();
    }, []);
  • Events(category, action, label) - tracks user interaction with form submits, links, buttons, etc.
    Event('Book', 'User clicked on book details', 'SEARCH_RESULTS');
  • OutboundLink - tracks external links
    <ReactGA.OutboundLink
    	eventLabel="Clicked read online link"
    	to="Link"
    	target="_blank"
    	rel="noopener noreferrer"
    >
    	Read online
    </ReactGA.OutboundLink>
  • Examples can be seen in Search.js, SearchForm.js, and SearchItems.js.

Naming Conventions

  • Branches - kebab case, all lowercase
  • Variable and function names - camel case, descriptive
  • CSS class names - kebab case, descriptive
  • Database fields - camel case

Prettier

  • Single quotes
  • 4 space tabs
  • Semicolon at the end of every line

Contributing

Contributors

Taylor Lohman Nicole Hollis Jonah Aitchison Michael Levick Miguel Nicolas Aasa Christian

License

Readrr is MIT licensed.