Coder Social home page Coder Social logo

ethanl21 / retroratings Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 21.88 MB

RetroRatings: CSUF CPSC-349 Project 1

Home Page: https://retroratings.web.app

License: MIT License

TypeScript 97.91% HTML 0.89% JavaScript 1.05% CSS 0.15%
csuf firebase react typescript

retroratings's Introduction

RetroRatings

Firebase Hosting Deploy Status GitHub

RetroRatings is a website used to rate nostalgic things from the 90s and 2000s.

RetroRatings homepage screenshot

Features

  • Rating nostalgic items from 0-5 stars
  • Upload new items for anyone to rate
  • See all your ratings in a tierlist format
  • Sign up and log in with Email, GitHub, or Google

Usage

RetroRatings is deployed via Firebase Hosting. It can be accessed at retroratings.web.app.

To deploy your own instance of RetroRatings, clone this repository and replace the Firebase config data located in src/config/firebase.ts. Running RetroRatings requires Firebase Authentication, Firestore Database, Firebase Cloud Storage, and App Check to be correctly configured:

  • Firebase Authentication
    • The Email/Password, Google, and GitHub providers should be enabled.
  • Firestore Database
    • Two collections, rating-items and user-ratings should be configured.
  • Firebase Cloud Storage
    • A folder named rating-items-images should be configured.
  • Firebase Hosting
    • A GitHub actions deploy workflow is included to allow GitHub actions to deploy directly to Firebase Hosting. A repository secret named FIREBASE_SERVICE_ACCOUNT_RETRORATINGS must be set in order to use this.
  • App Check
    VITE_APP_CHECK_DEBUG_KEY="app check debug key here"
    

For additional documentation on the back-end API, see API.md.

To run RetroRatings' frontend locally:

git clone https://github.com/ethanl21/RetroRatings.git
cd retroratings
npm i
npm run dev

Attribution

RetroRatings is developed and maintained by the following individuals:

Additionally, the following open-source libraries and tools are used:

RetroRatings is distributed under the MIT license.

retroratings's People

Contributors

ethanl21 avatar jose-gonzalez1 avatar nalluh avatar

Stargazers

 avatar  avatar

Watchers

 avatar

retroratings's Issues

User Authentication

Users should be required to log in to our website before they can use any of its features. This is requirement 1 of #1.

This actually seems fairly easy to implement using Firebase Authentication. We can add authentication with basic email/password, Google, and GitHub without paying anything so I think these would be a good option for our authentication methods.

Determine requirements

We should determine what features our website should have before we work on it so we know what to do.

The project rubric lists these requirements:

  • 1. The site has authorization/authentication code requiring users first to register, then to sign in
  • 2. The site blocks most of the website from the user unless they log in
  • 3. The site uses HTML, CSS, and JavaScript to create forms for its front end
  • 4. The site uses a JavaScript library to communicate with the back-end over the network
  • 5. The site uses Promises and Deferreds to check if the communication was successful, and displays an error if the server is down
  • 6. The site uses a NoSQL or a SQL database to store its data
  • 7. Website is attractive
  • 8. Website’s purpose can be ascertained in less than 10 seconds

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.