This project demonstrates the design of a blogging platform that separates backend and frontend functionalities into three parts: a backend API and two distinct frontend interfaces.
The backend API is the backbone of the platform, built using Node.js with Express. It manages data and logic using:
- prisma for database interaction with a PostgreSQL database.
- bcrypt for secure password hashing.
- jsonwebtoken and passport for user authentication and authorization.
- multer for handling file uploads.
- dotenv for environment variable management.
- cors to manage cross-origin requests.
Key functionalities include user management, content delivery, and data management through RESTful endpoints.
This project consists of two separate frontends: one designed for general visitors and the other tailored for administrators and blog authors. Both are single-page applications (SPAs) built with React and powered by Vite. They feature:
- @mui/material and @mui/icons-material for a responsive and intuitive UI.
- axios for seamless API calls to fetch blog content.
- react-router-dom for navigation between different views as a single-page app.
The public frontend allows users to explore blog posts and leave comments, while the authors' frontend provides tools for managing, creating, updating, and deleting posts.