Skip to content

A Full stack blog post application that utilizes the MVC paradigm and requires user authentication

Notifications You must be signed in to change notification settings

hazkeel27/tech-blog-2.0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tech-blog-2.0 📝

License: MIT

Description 📄

A comprehensive full-stack application designed to serve as a tech-oriented blog platform. This application adheres to the Model-View-Controller (MVC) architectural pattern, employing a separation of concerns approach to enhance code organization and maintainability.

Key Features of the Application:

User Authentication: Users can register and log in securely. Authentication is a crucial feature, ensuring that user data is protected and only accessible to authorized individuals.

Blog Post Creation: Authenticated users have the capability to create and publish blog posts. They can input titles and body content, allowing for the easy sharing of tech-related insights and knowledge.

Comment Functionality: Users can interact with blog posts by adding comments. This feature promotes engagement and discussions within the tech community.

Edit and Delete Posts: Authors have full control over their own blog posts. They can edit and update existing posts or choose to delete them if needed.

The application aims to create an interactive and user-friendly environment for tech enthusiasts to share their thoughts, ideas, and expertise. By implementing industry-standard technologies such as Handlebars for templating and Sequelize for database management, the application ensures robustness and scalability.

Overall, this full-stack tech blog application provides a comprehensive platform for users to engage with technology topics, collaborate with peers, and contribute to a vibrant online tech community. Its use of MVC, Handlebars, and Sequelize demonstrates a commitment to best practices in web development and database management.

Table of Contents

Installation 🛠️

To install the necessary dependencies, run the following command:

npm i
npm install dotenv@8.2.0
npm install mysql2@2.2.5
npm install express@4.17.1
npm install sequelize@5.21.7
npm install bcrypt@5.0.0
npm install connect-session-sequelize@7.0.4
npm install express-handlebars@5.2.0
npm install express-session@1.17.1
npm install mysql2@2.2.5

Install DevDependency for developing purposes:

npm install nodemon@2.0.3
npm install eslint@7.12.1
npm install eslint-config-prettier@6.15.0
npm install prettier@2.1.2

Usage 📘

  • Access the web application by clicking on the link.
  • Create an account by clicking the signup option from the top right. The homepage shows users all blog posts. Users can click on a blog post to read it, as well as read/write comments.
  • Dashboard shows users' posts created using their account. Users can create new posts from the bottom of the page, or edit/delete the existing posts.

Following is a video demonstrating how to run the application. 🎥

Video Demo

Contribution 🤝

Create user profiles where users can add profile pictures, update their personal information, and showcase their posts and comments. This adds a personal touch to the blog and encourages users to engage more.

Allow users to categorize their blog posts with tags or categories. This makes it easier for readers to find content on specific topics of interest.

Implement email notifications for user interactions, such as when someone comments on their post or replies to their comment. Notifications keep users engaged and informed.

Implement pagination or infinite scroll for long lists of posts and comments. This optimizes page loading times and user experience.

Tests 🧪

To run tests, users can the application by using the application as intended.

License 📜

This project is licensed under The MIT License. Here is the link to the license to access more information for your reference: https://opensource.org/licenses/MIT

Credits 🙏

I utilized the study material provided by the institution as a reference to complete my application.

Following are the documents I used to help me write code:

Questions ❓

If you have further questions, you are welcome to reach me through my email at hazkeel27@gmail.com.

You can view my projects by going through my GitHub profile at https://github.com/hazkeel27.

Deployed Application 🚀

https://tech-blog-by-hazkeel-afa319c93183.herokuapp.com/