Giter Site home page Giter Site logo

celinanperalta / cs-546-fp Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 2.0 841 KB

Final Project for CS-546 S21. Made by Kaiqi Chee, Kai Engwall, Raj Gadhia, Celina Peralta, and Brandon Wei.

License: GNU General Public License v3.0

JavaScript 67.20% Handlebars 30.60% CSS 2.13% SCSS 0.07%

cs-546-fp's Introduction

CS-546-FP

  1. Navigate into the "Spinder" directory
  2. run "npm start" in the command line. A message should print saying "We've now got a server! Your routes will be running on http://localhost:3000"
  3. Open http://localhost:3000 in a browser, this will take you to the Spinder home page
  4. If you are a new user, click "Sign Up". This will take you to a registration page, input information and press "Register"
  5. If you are a returning user, click "Log In". This will take you to a login page, input username and password and press "Login"
  6. If you are a new user, you will be directed to your profile upon registration. If you are a returning user, you will be directed to the users page
  7. Click on the Spinder logo to return to the home page, after login/registration this page will show the number of users, top songs, and top artist
  8. The "Users" page will show a card view of all non-private Spinder users, if your spotify is connected, there is a match% and a radar chart displayed on hover
  9. You can navigate to other profiles by clicking on the username displayed on the card
  10. On "My Profile" you will see a breakdown of your music profile as a radar chart as well as top genres, your username, name, location, bio, and an option to refresh spotify data. This spotify data is deisplayed below as Top Songs, Top Artist, and Top Playlists.
  11. Under the settings page the user will be able to change the profile fields as well as make portions of their account private.
  12. After you are finished using Spinder, you can logout in the top right corner.

cs-546-fp's People

Contributors

celinanperalta avatar kaiqichee avatar kengwall8 avatar gadhiar avatar braandonwei avatar cheekaiqi avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

cs-546-fp's Issues

Spotify Authentication

  • Implement authentication flow through Spotify API
  • Add access token(?) to new user
  • Implement login for existing users

Create Music Profile

  • On successfully fetching user's top artists and tracks, add to DB
  • From top songs, get top genres
  • From top songs, get average of audio analysis of tracks

Get Spotify Data

  1. Create another router for retrieving data from the Spotify API given credentials (should not be accessible to users)
  2. Create server-side calls to Spotify API

Login Cookies

  • After successful login, create a new session for the user in the browser
  • While a session is active, the user should not have access to the login page

Log In button

Homepage login button not changing to log out when user is logged in

Top Songs/Artists Loading

When first connecting to spotify, playlists are displayed on page, but top songs and top artists are not displayed until the refresh spotify link is clicked.

Navbar hamburger menu won't work

Describe the bug
Bootstrap hamburger menu will not show buttons

To Reproduce
Steps to reproduce the behavior:

  1. Resize window horizontally until hamburger shows up
  2. Click on it
  3. Nothing happens

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Create Login Page

  • On successful login, redirect to some main page
  • Create user in DB with access token (unhashed for now)

Create User Profile page

On login, the user is brought to the homepage. For now, this should be the user's profile page.

  • In routes/spotify.js, the user's info is returned in a JSON object in the req body. Add the information from this to a new User object and add them to the database.
  • At the /users/{id} route, the data for that user should be rendered on a page.

Get User's Top Tracks and Artists

  • [Test] Fetch data from Spotify API at /top endpoint
  • On successful fetch, add all data to the db through data/artists and data/songs
  • If access token is expired, call refresh endpoint from routes/users and retry

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.