@@ -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