Mastori: A SpaceYaTech Blog App made in Django
Mastori is a community-driven open-source project that aims to provide a simple and efficient blogging platform built with the Django Rest Framework.
Overview
The SpaceYaTech Content Management system is an open-application that lets users to quickly publish content and share it with ease to their audience. Inspired by existing CMSes like Hashnode, Wordpress, DEV and Joomla, we felt the need to create an African CMS created by young Africans looking to learn by contributing to Open Source. SpaceYaTech opted for a CMS as the debut open source project because of the technicalities involved in creating, maintaining and scaling a CMS. A CMS poses great technical challenges and a great learning opportunity for those looking to grow their tech skills. For a more detailed overview of the project, read through the CMS Backend wiki
The project is designed to help developers build their own blogging website or add blogging functionality to an the SpaceYaTech website with ease.
Endpoints
/mastori/
The /mastori/
endpoint allows retrieving all blog posts. GET requests to this endpoint retrieve a list of all blog posts
For complete documentation. Mastori Api Documentation
Authentication
/mastori/token/
Users
/register/
/login/
User Accounts
/accounts/
/accounts/id/
Blog Posts
/mastori/
/stori/id/
/account/id/stori/
/account/id/stori/id/
Comments
/stori/id/comments/
/stori/id/comment/id
/account/id/stori/id/comment/
/account/id/stori/id/comment/id/
Reactions
/stori/id/reactions/
/stori/id/reaction/id
/account/id/stori/id/reaction/
/account/id/stori/id/reaction/id/
Features
Mastori provides the following features:
- Create, edit and delete blog posts
- Publish, unpublish or delete blog posts
- Tagging and categorizing posts
- Searching for posts by title, content, tags or categories
- User authentication and authorization
- User profile management
- Installation
To install Mastori, follow these steps:
-
Clone the repository: ```bash
git clone https://github.com/yourusername/mastori.git ```
-
Create a virtual environment and activate it:
python -m venv env source env/bin/activate
-
Install the required packages:
pip install -r requirements.txt
-
Set up the database:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Run the server:
python manage.py runserver
Usage
Once the server is running, you can access the API at http://localhost:8000/api/
. You can use any HTTP client to interact with the API, such as curl or httpie. Alternatively, you can use the built-in API explorer by navigating to http://localhost:8000/api/docs/
in your web browser.
To access the admin panel, navigate to http://localhost:8000/admin/
and log in using the credentials of the superuser you created earlier.
The blog Api
The blog api {{baseurl}}/blog/ shows a list of all available blog posts (Stori/Mastori) The model naming is abitrary and can be subject to change if need be Ther is also need to filter out the various blogposts in relation ti their tittle or date posted hence the filter
Contributing
We welcome contributions from the community. To contribute, follow these steps:
- Fork the repository
- Create a new branch
- Make your changes and commit them
- Push your changes to your forked repository
- Create a pull request
Please make sure to follow the coding style and conventions used in the project.
Get to read the Contributions guide here.
Commit message template
Just so that we have all our commit messages to be more readable and sensible it is recomended we use a template for the commit messages. Here is a commit message template that one should follow when making your Contributions
License
Mastori is licensed under the MIT License. See LICENSE for more information.
Contributor Features
Enviroment setup By @wanjirumurira 82d55a4
Project Setup By @sangkips 82bc556
User & Accounts By @hellen-22 1818b63
PhoneNumberField By @sangkips 615c011
Authentication (JWT) By @hellen-22 c2d7a90
Throttling policy By @Collins-Omariba 9159a8e
Verification richtext editor By @aibunny 25f991b
Fixed Workflow Build Error (commit #100) By @mosesmbadi b40a5b4
Nested Comments By @aibunny bbab06c