Skip to content

NascimentoMatheus1/Mini-Message-Board

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Mini Message Board pt-br

A dynamic, full-stack web application that allows users to post and view messages in real-time. This project was built to practice the fundamentals of Node.js, Express, and Server-Side Rendering.

🌐 Deployment

  • Backend: Node.js/Express hosted on Render (Free Tier).
  • Database: PostgreSQL hosted on Neon platform.
  • This project is on a free server that hibernates during inactivity. Please be patient for about a minute while it boots up; it will work perfectly immediately after that!

🚀Live Demo:

You can explore the live application at the link this link 👉 🔥 Live Demo

📸 Preview

Index: A clean list of cards showcasing user messages. image.alt

Form page: A user-friendly form with real-time validation feedback. image.alt

Message details page: image.alt

Error Page: A custom-designed error page for a polished user experience. image.alt

🚀 Features

  • Real-time Feed: View a list of messages with author names and timestamps.
  • Message Submission: A dedicated form to capture user input and add it to the board.
  • PostgreSQL Persistence: Full CRUD integration with a Neon-hosted Postgres database, ensuring messages are stored securely and persist across server restarts.
  • Dynamic Detail Views: Individual pages for each message to view granular details via dynamic routing.
  • Robust Data Handling: Implements the Post/Redirect/Get (PRG) pattern to prevent duplicate form submissions and ensure a smooth UX.
  • Data Validation: Integrated server-side validation to ensure message integrity and protect against malicious input.

🛠️ Tech Stack

  • Backend: Node.js, Express.js
  • Database: PostgreSQL
  • Frontend: EJS (Embedded JavaScript Templates), CSS3

🧠 Key Learning Objectives

During this project, I mastered the following concepts:

  • Relational Database Management: Designing schemas and performing SQL queries to store and retrieve user messages.
  • Database Connection Pooling: Managing efficient connections between a Node.js backend and a remote Postgres instance.
  • The Request-Response Cycle: Managing GET and POST requests to handle data flow between the client and server.
  • Middleware Configuration: Utilizing app-level middleware to parse incoming form data into usable JavaScript objects.
  • Dynamic Templating: Using EJS to loop through data arrays and inject dynamic content into HTML.
  • Form Security: Implementing input sanitization and escaping to prevent Cross-Site Scripting (XSS) attacks.
  • Parameterized Routing: Setting up dynamic routes (e.g., /messages/:id) to display specific data points.

About

web application that allows users to post and view messages in real-time

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors