Skip to content

Commit ec32efe

Browse files
Update README.md
1 parent a8d614a commit ec32efe

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,37 @@ TechBlogger is a modern, full-stack blogging platform designed for tech enthusia
1919
- **Database**: SQLite (default, can be swapped for MySQL/PostgreSQL)
2020
- **Styling**: Custom CSS
2121

22+
## 🧩 Architecture Overview
23+
24+
### Front-End (React)
25+
The front-end is built with React.js, providing a dynamic and responsive user interface. It features:
26+
- **User Dashboard**: Allows users to manage posts, view analytics, and update their profile.
27+
- **Admin Panel**: Enables admins to manage users, admins, reports, and platform settings.
28+
- **API Key Management**: Both users and admins can view, copy, and regenerate their API keys from the settings tab.
29+
- **Charts & Analytics**: Uses Chart.js for visualizing data and statistics.
30+
- **Custom Styling**: All UI components are styled with custom CSS for a modern look.
31+
32+
The React app communicates with the backend via RESTful API calls (using `fetch`).
33+
34+
### Back-End (Flask)
35+
The backend is powered by Flask (Python), exposing RESTful API endpoints for all core functionalities:
36+
- **Authentication**: Handles login and role-based access (user/admin).
37+
- **User & Admin Management**: CRUD operations for users and admins.
38+
- **Post Management**: Endpoints for creating, editing, and retrieving blog posts.
39+
- **API Key Endpoints**: Secure endpoints for generating, retrieving, and updating API keys for both users and admins.
40+
- **CORS Enabled**: Uses `flask-cors` to allow cross-origin requests from the React frontend.
41+
42+
The backend validates API keys for protected endpoints, ensuring secure access.
43+
44+
### Database (SQLite)
45+
The default database is SQLite, a lightweight file-based database ideal for development and small deployments. It stores:
46+
- **Users**: User credentials, profile info, and API keys.
47+
- **Admins**: Admin credentials, roles, and API keys.
48+
- **Posts**: Blog post content, metadata, and author info.
49+
- **Reports/Analytics**: Data for generating charts and statistics.
50+
51+
You can easily swap SQLite for MySQL or PostgreSQL by updating the backend configuration and models.
52+
2253
## 🚀 Getting Started
2354

2455
### Prerequisites

0 commit comments

Comments
 (0)