Portfolio Website
Goal
Utilize the skills learned in website development to create and construct a portfolio website that showcases past work and projects.
About
This project was my most challenging and yet, most fulfilling accomplishment. The portfolio website is the one seen before you and features many sought-after perks and features. Developed and run through Express and Node.js, this Full Stack Web Dev project was entirely created by myself. Except for styles by Bootstrap, this website was designed through custom Javascript, CSS, and HTML. The project features full CRUD implementation, including RESTful routes
Database
Mynameisnick.com features the inclusion of a Mongoose database. This database encompasses models such as comments, users, projects, etc. While stored locally for most of this project's lifetime, the database has since been moved to Atlas to provide a cloud-based system.
Cloudinary
While not available to an ordinary user, this project features the use of cloud-based photo storage Cloudinary. When creating new projects, photos like the one seen above are read and sent to Cloudinary. The link is then stored in a database and sent to requested pages.
Authentication
Using Passport.js, this project supports user creation. While not a necessity for a portfolio website, this feature enables users to comment on projects and leave feedback. Custom password policies have been set, as well as password resets through email verification.
Error Handling
Using express-error and other custom-made functions, all errors are handled and given a status message with a number. Async functions are placed in async error handlers to avoid time-outs. Flash has also been incorporated to not only send success messages but also error messages with redirects.
Sessions
Each user is granted a session that holds multiple values. Some of which include user info, redirect locations, and errors regarding password policy. These sessions are protected and given an expiration date
Future Goals
I hope to continue my work on this website and add new features. Some of which I had in mind are profile pages, comment replies, upvotes, and the user suspension handlers.
Comments
Log in to post a comment.
Awesome!!!
Save
Cancel