A practice on MVC patterns built over Express JS, MongoDB, Mongoose and HBS stack.
This project is generated with Ironlauncher
DiscoLect is platform for amateur music album reviewing. Users can easily start a blog and quickly do a review with pre-filled album details' sheets from Spotify API. After creating a review, albums are stored as references in DB on the review model; reviews can be browsed by using a search engine based on artists and their albums, thus search results allow visiting the reviews and the author's profiles.
npm install
# or
yarn add
This project is using Cloudinary as image storage, Spotify API as album search engine, and Mongo DB for local/remote data storing. Place your required secrets on:
/dev/discolect/.env
The reviews seeding file (seeds/reviews_seeds.json) is manually exported on MndoDB Compass. Create 2 or more initial users. Care about bindind to some of your local DB use by replacing author.$oid with the matching MongoDB _id
After placing your local MONGO URI, run on dev mode:
npm run dev
# or
yarn rev
- SIGNUP - A soft registering flow which adds defaults to user image and Blog Name.
- REVIEW - Search your favourite albums from an extense Spotify DataBase through it’s API and easily start a review.
- SEARCH AND BROWSE - Browse others posts by album/artist based search engine, and/or visit other any author (user) profile page.
- USE YOUR MOBILE DEVICE - Layout guarantees a mobile first experience
- REVIEW ROUTE SIMPLIFICATION
- SPLIT ROUTES FROM ALBUM AND ARTIST SEARCH ON REVIEW CREATION
- HOMEPAGE LATEST ENTRIES CAROUSEL
- PAGINATION ON REVIEW SEARCH RESULTS
- FOLLOW REVIEW AUTHORS (OTHER USERS)
- COMMENT ON REVIEWS
- USER PRESENCE INDICATOR
- MAILER: WELLCOME USER, GOODBYE USER
- TEXT EDITOR PACKAGE (FORMAT REVIEW CONTENT)
- PASSWORD CHANGE
- RELATED CONTENT LINKS ON REVIEW'S FOOTER
-
GET /
- renders the homepage wirth latest 3 review entries
-
GET /auth/signup
- redirects to / if user logged in
- renders the signup form
-
POST /auth/signup
- redirects to / if user logged in
-
GET /auth/login
- redirects to / if user logged in
- renders the login form
-
POST /auth/login
- redirects to / if user logged in
-
POST /auth/logout
- redirects /auth/login user logged in
-
GET /review/search-artist
- renders the artist list to choose album
-
GET /review/:artistID/album-choose
- renders the album to review list
-
GET /review/:albumID/create
- renders the review create form
-
POST /review/:albumID/create
- Creates a review document in our DB, redirects to it's view
-
GET /review/search
- renders the review search results, based on artist or album name
-
GET /review/:albumID/:reviewId/edit
- renders the review edit form
-
POST /review/:albumID/:reviewId/edit
- updates the review
-
POST /review/:albumID/:reviewId/delete
- destroy review
-
GET /profile/:userID
- renders the user profile
-
GET /profile/:userID/edit
- renders the user profile edition form
-
POST /profile/:userID/edit
- updates the user profile
-
POST /profile/:userID/delete
- destroy user profile