This project involves the development of a full-stack blogging website with the following features:
- User Registration and Authentication: Users can sign up and log in securely.
- Article Interaction: Users can leave comments on articles and like articles.
- Subscription Feature: Allows users to interact with each other through subscriptions.
- Content Management: Users have full control over their authored content, including creating, updating, and deleting articles. This is facilitated by a WYSIWYG editor.
- User Management: Users can manage their personal information, such as username and password.
- Analytics and Statistics: Provides insights into user-created content.
- Express.js: Web framework for handling HTTP requests and middleware functions.
- Handlebars: Templating engine for server-side rendering.
- SQLite: Lightweight database solution for data storage.
- DAOs (Data Access Objects): Manage database interactions and perform CRUD operations.
- SQL: Utilized for database schema initialization and queries.
- AJAX Requests: Facilitate asynchronous communication between frontend and backend.
- Cookies: Essential for authentication token storage and session verification.
- Bcrypt: Password hashing and salting for enhanced security.
- Multer: Handles file upload management.
- JSON: Our standard data format for information exchange.
- JavaScript: Used for UI logic, event handling, and AJAX requests.
- CSS Animations: Enhance user experience and interactivity.
- CSS Flex and Grids: Layout management in page views.
To run the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/tonexie/fullstack-blog.git
-
Navigate to the project directory:
cd Blogging-system
-
Install dependencies using npm:
npm install
-
Run the program:
npm run dev
-
Navigate in the browser to:
http://localhost:3000/
For testing purposes, the following fabric accounts are provided:
- user1: Password: 123
- user2: Password: 123
- ...
- user10: Password: 123