http://octave-bananas.surge.sh/
A fullstack app using React, Node, and Express where users can see and select events after registering and logging in. Users can view all events happening in their area (NYC). Users can select events to attend.
- App registration
- App login
- App signout
- User authentication
- User can see list of events and relevant data
- User can like artists
- User can track events
- User can write a review for the artist
- User can write a review for the venue
- Users can see all reviews for each venue and artist
//Get all users
userRouter.get '/'
//Get a specific user
userRouter.get '/:id'
// Register route
userRouter.post '/'
//Login route
userRouter.post '/login'
// Add to LIKES table
userRouter.put '/:user_id/artists/:artist_id'
// Get all artists which user liked
userRouter.get '/:user_id/artists'
// Delete from LIKES table
userRouter.delete '/:user_id/artists/:artist_id'
// Add to ATTENDS table
userRouter.put '/:user_id/events/:event_id'
// Get all events user is attending
userRouter.get '/:user_id/events'
// Delete from ATTENDS table
userRouter.delete '/:user_id/events/:event_id'
// Get all events
eventRouter.get '/'
// Get a specific event
eventRouter.get '/:event_name'
// Add an event with a venue
eventRouter.post '/:venue_id'
// Delete an event
eventRouter.delete '/:id'
// Add to PERFORMS table
eventRouter.put '/:event_id/artists/:artist_id'
// Get all artists that will perform at the event
eventRouter.get '/:event_id/artists'
// Get all venues
venueRouter.get '/'
// Get a specific venue
venueRouter.get '/:venue_name'
// Add a venue
venueRouter.post '/'
// Delete a venue
venueRouter.delete '/:id'
// Get all venue reviews
venueReviewRouter.get '/'
// Get all venue reviews of a venue
venueReviewRouter.get '/:venue_id'
// Add a venue review. first id is venue id, second id is user id
venueReviewRouter.post '/:id/users/:user_id'
// Delete a venue review
venueReviewRouter.delete '/:id'
// Edit a venue review
venueReviewRouter.put '/:id'
// Get all artists
artistRouter.get '/'
// Get a specific artist
artistRouter.get '/:artist_name'
// Add an artist
artistRouter.post '/'
// Delete an artist
artistRouter.delete '/:id'
// Get all artist reviews
artistReviewRouter.get '/'
// Get all artist reviews for an artist
artistReviewRouter.get '/:artist_id'
// Add an artist review. first id is the artist id, second id is the user id
artistReviewRouter.post '/:id/users/:user_id'
// Delete an artist review
artistReviewRouter.delete '/:id'
// Edit an artist review
artistReviewRouter.put '/:id'
- Axios
- Express
- Morgan
- Pg
- Nodemon
- Sequelize
- Body-Parser
- Cors
- React-router-dom
- Bcrypt
- Jsonwebtoken
- Moment.js
const fetchArtist = this.props.currentEvent._embedded.attractions[0].name;
const artist = await findArtist(fetchArtist);
if (!artist.artist) {
const newArtist = await addArtist({name: this.props.currentEvent._embedded.attractions[0].name, picture: this.props.currentEvent._embedded.attractions[0].images[0].url});
// eslint-disable-next-line
const artistReview = await addArtistReview(newArtist.artist.id, this.props.user.id, review);
} else {
// eslint-disable-next-line
const artistReview = await addArtistReview(artist.artist.id, this.props.user.id, review);
}