Skip to content

burd5/book_club_ejs

 
 

Repository files navigation

Book Club

gif of webpage

Book Club is a full stack web application that allows users to catalog their book history. Users can add items to their reading list, see what their friends are reading, and rate their favorite reads.

Link to project: https://bookclub.cyclic.app/

How It's Made:

Tech used: HTML, CSS, JavaScript, Node.js, EJS, MongoDB, CSS Materialize

These idea for Book Club originated as a way to migrate my book reading list from my notes app to a more functional setting. The mainframe of the website revolves around adding books to your completed or reading list. Users can also favorite books and follow other users to see what they are reading. All of the pages were built using ejs templates and the majority of the styling was completed utilizing CSS materialize. I like the simplistic look of Materialize and enjoyed using components like modals, collapsible headers, and dropdowns. Other tools used include:

flash, session, mongoose, cloudinary, multer, passport, local, bcrypt, validator, morgon, nodemon, dotenv

Optimizations:

There are many other features that I want to add to make this a more robust app. Some things include:

  • error pages
  • an 'add to reading list' button on the community feed that allows users to add other user's books to their list
  • connecting the add book form to an API that will allow users to search and select books instead of manually entering them
  • creating a book view page where the user can click on any book on the site and get the author, summary, etc.
  • a filter for the community feed that allows users to sort by rating, author, alphabetical, etc.
  • a filter on user's dashboard that allows them to filter their own collection
  • badges that provide user's notifications when someone follows them or when new books are added to the community feed
  • users can add genres, requests, and other information to their user profiles
  • users can recieve messages from other users
  • users can comment on book postings

Lessons Learned:

This was my first true full stack web application. I learned the importance of MVC and utilized many npm packages that helped support essential functions of my app. I learned a lot about Mongoose, including referencing other models, commands such as $addToSet, and the populate() method. I started with EJS, temporarily switched to handlebars, and then came back to EJS. Most importantly, I learned valuable lessons about troubleshooting. I learned to read documentation more thoroughly. I learned when to reach out for help instead of wasting needless time trying to brute force solutions (still struggling with this). Although this application took way longer than it should have, I feel more energized and prepared to jump into future projects with the skills I have learned. On to starting to use React and SQL!

About

Full Stack Web Application for Book Worms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • EJS 45.8%
  • JavaScript 42.5%
  • CSS 11.7%