Welcome to Booklastic Blog Place! This application is a full-stack blog where bookies can bond. We aim to recruit users from around the world, to create a community of people who love to read! Come visit our site to share with our community what you have been reading and your review (including thoughts, opinions and questions) about your book. Save your review to your personal library page, but also share it with the world! From your personal library page, you can edit/delete your reviews if needed. From the homepage, you can read all reviews and leave comments on their! Interact with others by including questions in your review for them to comment on, or commenting on others reviews. Additionally, use our live chat feature to communicate with bookies in real time!
On the backend, we have a library database of books that stores both titles and authors and links to associated genres. You can choose from a book with already have, or add a new one! Additionally, we house a database of our user accounts (first name, email and encrypted passwords). Associated to each user are their blogs, books, and comments!
We aim to help you find a good book recommendation (or a few) for the next time you are ready to head to the bookstore!
Check out our deployed project!
- Installation
- Packages
- Usage
- User Story
- Acceptance Criteria
- Demo
- Screenshots
- Contributing
- Questions
- License
To install this project:
- Start by forking this repository on Github.
- Clone this project to your machine by using the
"git clone + URL"
command. - Open the project with your favorite text editor, like VS Code (in your terminal, first type
"cd foldername"
then"code ."
). Install Node.js
from their website, if you have not already. Here are some additional instructions.Install MySQL
from their website, if you have not already. Here are some additional instructions.- Suggest installing Nodemon if you have not already.
- This project includes a
package.json
file that specifies dependencies for this project, so be sure to run"npm install"
. This will install the packages specified in the next section.
General Technologies:
NPM Packages
- nodemon
- Express
- dotenv
- MySQL2
- Sequelize
- bcrypt
- connect-session-sequelize
- express-handlebars
- express-session
- socket.io
After following the instructions in installation:
- Open the database file in your terminal.
- Run command
"mysql -uroot -p"
and enter your password (note: keystrokes will not show). - Run command
"SOURCE schema.sql"
to set up the database and tables. - OK to
'quit'
MySql. - Optionally, run command
"npm run resetdb"
to replace steps 2-4 (enter password when prompted). - Create a file called
.env
in the root folder of the program. In this folder include the following information:
DB_NAME = 'ecommerce_db'
DB_USER = 'your username'
DB_PASS = 'your password'
SESSION_SECRET = 'your session secret'
7. Open the "server.js" file in your integrated terminal. 8. Run command `"npm run seed"` (or "node seeds/index.js") to seed the database if desired. 9. Run command `"npm run start"` (or "node server.js"). Alternatively, if you have Nodemon installed, run `"npm run watch"` (or "nodemon server.js"). 10. Open `'localhost:3000'` in your browser and see the site in action. 11. Enter login/logout/signup requests as you please, create a new reviews or update/delete an existing one, or add comments to others reviews, or chat with the community! 12. When finished, run `CONTROL-C` in terminal to end stop nodemon, and trash the session.
AS A BOOK LOVER
I WANT a community of people like me who love to read
SO THAT I can express my thoughts on books I love (or don't!), further my understanding of books through dialogue with others, find new book recommendations, and share my passion for literature!
This project was completed for the Unversity of Washington Web Development Bootcamp and has the following requirements:
- Must use Node and Express web server
- Must be backed by a MySQL database with a Sequelize ORM
- Must have both GET and POST routes for retrieving and adding new data
- Must be deployed with heroku (with data)
- Must utilize at least one new library, package or technology that we haven't discussed
- Must have a front end/UI utilizing Handlebars
- Must have a folder structure that meets the MVC paradign
- Must include authentication (sessions and cookies)
- Must project API keys in Node with environmental variables
Check out this video for a demonstration of this project.
GIF of Booklastic
This project was completed as a group as 'project 2' for the University of Washington Web Development Bootcamp. If you would like to contribute, please feel free and contact us with questions. The login page was created by Ivan D. here and the artists from Wissawa Khamsriwath, and other contributors made the icons for the buttons.
If you have any questions feel free to contact our team:
- Andrew Ryu | Github | email
- Brooke Love | Github | email
- Jonathan Tran | Github | email
- Haley Seymour | Github | email
Copyright (c) 2022
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.