Bloginya is a modern blogging platform built with a Perl backend (Mojolicious) and an Angular frontend.
- User Management: User registration, blocking, login, and profile management.
- Content Creation: Create, edit, and delete blog posts with a rich text editor.
- Audio Posts: Add audio files to blog posts for enhanced multimedia content.
- Categorization: Organize posts with categories.
- Private categories: Ability to create private categories visible only to the owner.
- Comments: Allow users to comment on posts.
- Voice Comments: Record and attach voice messages to comments.
- File Uploads: Upload and manage files.
- Search: Full-text search for posts.
- Admin Panel: Manage users, posts, and other site settings.
The project is composed of four main services:
backend: A Perl-based API built with the Mojolicious framework. It handles all the business logic and data persistence.frontend: An Angular single-page application that provides the user interface.cool_asia: A Python microservice that provides language conversion functionality.cool_audio: A Go microservice that handles audio file uploads and streaming for audio posts and voice comments.
All services are designed to be run in Docker containers.
To get the project running locally, you can use Docker Compose.
- Clone the repository:
git clone <repository-url> cd bloginya
- Create a
bloginya.ymlfile in thebackdirectory by copying thebloginya.yml.samplefile.cp back/bloginya.yml.sample back/bloginya.yml
- Update the
bloginya.ymlfile with your Google OAuth credentials. See the "Google OAuth Configuration" section below for more details. - Run the application using the provided
docker-compose.ymlfile:docker-compose up -d
- The application will be available at
http://localhost:4200.
To use Google OAuth for authentication, you need to create a project in the Google Cloud Console and enable the "Google People API".
Once you have created a project, you can create an OAuth 2.0 client ID in the "Credentials" section. When creating the client ID, you will need to specify the authorized redirect URIs. For local development, you should add http://localhost:8080/api/oauth/from_google.
After creating the client ID, you will be given a client ID and client secret. You will also need your project ID, which can be found in the "Dashboard" section of the Google Cloud Console.
Update the google_oauth section in your back/bloginya.yml file with these values.
Contributions are welcome! Please feel free to submit a pull request.
This project is licensed under the MIT License.