Skip to content

hmaach/01Blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

220 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

01Blog

01Blog

A social blogging platform for students to share their learning journey

Java Angular PostgreSQL Docker


📖 Overview

01Blog is a fullstack social blogging platform designed for students to document and share their learning experiences, discoveries, and progress. The platform fosters a collaborative environment where users can interact with content, follow peers, and engage in meaningful educational discussions.

Built with modern technologies, 01Blog combines a robust Java Spring Boot backend with a dynamic Angular frontend to deliver a seamless user experience.


Key Features

  • Secure Authentication - User registration and login with JWT-based security
  • Role-Based Access Control - Distinct permissions for Users and Administrators
  • Rich Content Creation - Create and publish blog posts with formatting options
  • Media Support - Upload and embed images and videos in posts
  • Social Interactions - Like, comment, and share posts with the community
  • User Profiles - Follow other users and build your network
  • Admin Panel - Comprehensive content moderation and user management tools
  • Responsive Design - Optimized experience across all devices

🛠️ Technologies Used

Backend

  • Java Spring Boot - RESTful API development
  • Spring Security - Authentication and authorization
  • PostgreSQL - Relational database management
  • Docker - Containerization and deployment

Frontend

  • Angular - Component-based UI framework
  • Angular Material - Modern UI components
  • SCSS - Enhanced styling capabilities
  • TypeScript - Type-safe development

🏗️ Architecture

01Blog follows Clean Architecture principles, ensuring maintainability, testability, and scalability through clear separation of concerns.

Clean Architecture Diagram

Architecture Layers

  1. Entities - Core business logic, independent of external dependencies
  2. Use Cases - Application-specific business rules and workflows
  3. Interface Adapters - Data transformation layer between external sources and business logic
  4. Frameworks & Drivers - External integrations (database, web framework, UI)

This architectural approach provides:

  • Independence from frameworks and external tools
  • Highly testable business logic
  • Flexibility to swap implementations
  • Clear dependency flow (inward only)

Learn more about Clean Architecture →


📊 Database Schema

View the complete database schema and relationships:

View Database Schema on dbdiagram.io →


📚 Documentation

Backend Documentation

Comprehensive backend setup, API endpoints, and implementation details:

Backend Documentation →

Topics covered:

  • Installation and setup
  • API endpoints and usage
  • Security configuration
  • Database migrations
  • Testing strategies

Frontend Documentation

Frontend architecture, components, and development guide:

Frontend Documentation →

Topics covered:

  • Installation and setup
  • Project structure
  • Component architecture
  • State management
  • Styling guidelines

🚀 Quick Start

Prerequisites

  • Java 17 or higher
  • Node.js 18+ and npm
  • PostgreSQL 14+

Installation

  1. Clone the repository

    git clone https://github.com/hmaach/01blog.git
    cd 01blog

    2. Set Up Environment

    cd backend
    cp .env-example .env

    Update .env with your credentials:

  2. Backend Setup

    cd backend
    ./mvnw spring-boot:run
  3. Frontend Setup

    cd frontend
    npm install
    ng serve

Visit http://localhost:4200 to access the application.


Made with ❤️ by Talent of ZoneO1 Oujda

About

A social blogging platform where students can share their learning experiences, discoveries, and progress. Built with Java Spring Boot (backend) and Angular (frontend)

Topics

Resources

Stars

Watchers

Forks

Contributors