01Blog is a social blogging platform for students to share their learning journey, discoveries, and progress. Users can create posts, follow other students, like/comment on posts, and report inappropriate content. Administrators can moderate content and manage users.
- Backend: Spring Boot + JPA (Hibernate)
- Frontend: Angular
- Database: PostgreSQL
- Media Storage: MinIO (open-source S3-compatible object storage)
- Authentication: JWT + Spring Security
- User authentication and role-based access (User/Admin)
- Post creation with text, images, videos, and media preview
- Comments and likes
- Follow/unfollow users
- Notifications for new posts and interactions
- Reporting inappropriate content
- Admin dashboard for moderation
- Future-ready chat with audio support
01Blog
├── Frontend (Angular)
│ └── Modules/Components as listed above
├── Backend (Spring Boot + JPA)
│ ├── Controllers
│ ├── Services (PostService, UserService, ChatService, MinioService)
│ ├── Repositories (JPA)
│ └── Security (JWT + roles)
├── Database (PostgreSQL via JPA)
│ └── Entities: User, Post, Comment, Like, Subscription, Notification, Report, Message
└── Media Storage (MinIO)
└── Bucket: 01blog (Images, Videos, Audio)
└── URLs stored in DB
- Clone the repository
- Set up environment variables in
.envfile by copying.env.examplethen modifying as needed - Run makefile commands:
make help- Show available commands
- After running make help, you can use the following commands to manage the application:
-
Database:
make db-up- Start PostgreSQLmake db-down- Stop PostgreSQLmake db-logs- Show DB logsmake db-shell- Connect to DB shell
-
MinIO:
make minio-up- Start MinIOmake minio-down- Stop MinIOmake minio-logs- Show MinIO logs
-
App:
make run- Run backend locallymake build- Build backendmake clean- Clean buildmake test- Run tests
-
Docker Compose Stack:
make compose-up- Start all containersmake compose-down- Stop all containersmake compose-logs- View logsmake compose-restart- Restart all containers
-
Utility:
make env-check- Check environment variablesmake status- Check system status
-
- Frontend:
http://localhost:4200 - Backend API:
http://localhost:8000/api - MinIO Console:
http://localhost:9001(default user/pass from .env) - PostgreSQL: Connect via
jdbc:postgresql://localhost:<DB_PORT>/<DB_NAME>using credentials from .env
This project is licensed under the MIT License. See the LICENSE file for details
- Inspired by various open-source projects and tutorials on building social platforms with Spring Boot and Angular.
For questions or support, please contact fihry.