This project is for developing an blog_api using laravel

Overview

Blog Api

A TDD implementation of a weblog RESTful API.
This project is a REST api implementation of my other project laravel with more features.

features

  • Post CRUD: a post can be created, read, updated and deleted.
  • Post comment CRUD: a post may have many comments which can be created, read, updated and deleted by the owner.
  • Post view: There is a table for saving every post view and its view count.
  • Category CRUD: a post must have a category which it can be created, read, updated and deleted.
  • Post bookmark: a user can bookmark many posts, and can view all bookmarked posts.
  • authentication: using laravel sanctum to implement authentication in the project.
  • Post Status: a post can be in drafted or published status, and published posts will be fetched in posts feed.
  • Post feed: a feed of all published posts.

technical features

  • Using Pest testing framework to implement the api in TDD style using more than 75 feature & unit test.
  • cleanup models using traits.
  • create a reusable system of traits for models to implement new eloquent relationships.
  • using custom laravel validation rules for required rules that are not present in laravel/core.
  • using form request classes to separate validation logic from controllers logic.
  • organize form request classes in App/Http/Requests folder in resource named folders for better codebase organization.
  • organize controllers in App/Http/Controllers folder in resource named folders for better codebase organization.
  • using integers to represent enum instead of storing an enum in the database.
  • using StatusManager classes to separate enum behaviour from other parts of the code.
  • using third-party libraries to implement authentication.
You might also like...
Laravel-7 "Personal Area" Project

Laravel-7 "Personal Area" Project System Requirements Apache

This is a Starter Laravel 8 project with Vue 3 and Bootstrap 5 installed for you.

Laravel8-Vue3-Bootstrap5 This is a Starter Laravel 8 project with Vue 3 and Bootstrap 5. Instalation Guide: As always you need to: composer install Th

A basic Laravel project aimed at facilitating rapid prototyping.
A basic Laravel project aimed at facilitating rapid prototyping.

HTG Laravel A basic Laravel project aimed at facilitating rapid prototyping. Why write yet another login form when you just want to try something out?

Quick Start - Project With Laravel 8.x and AdminLTE 3

Quick Start - Project With Laravel 8.x and AdminLTE 3 (feat. Docker) Cursos de Laravel - PT-BR Step by step Clone this Repository git clone https://gi

Dockerized Laravel project with authentication and car brand crud functionalities.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Project skeleton generator for Laravel & Lumen projects
Project skeleton generator for Laravel & Lumen projects

Skeletor Skeletor is a PHP based CLI tool that has been built to take away the pain of setting up a base project skeleton for Laravel & Lumen projects

The Bureau Onbekende Zaken is a laravel project meant to compete with mainstream CMS applications and finetune to the specific needs of Bureau Onbekende Zaken.

The Bureau Onbekende Zaken is a laravel project meant to compete with mainstream CMS applications and finetune to the specific needs of Bureau Onbekende Zaken.

project with laravel 9 and php 8 and vuejs 3(modular) in both multi page and single page application

About Project Since Laravel 9 was recently released, it supports PHP 8 and above. So I decided to implement a prototype project using Laravel 9 + PHP

Mazer is a Admin Dashboard Template that can help you develop faster. We bring Mazer with Laravel starter project.
Mazer is a Admin Dashboard Template that can help you develop faster. We bring Mazer with Laravel starter project.

Mazer is a Admin Dashboard Template that can help you develop faster. We bring Mazer with Laravel starter project. It's completely free and you can use it in your projects.

Comments
  • Use redis for views

    Use redis for views

    In order to make the website more efficient and reduce the number of queries to the db, and also to enhance my own skills at using Redis as cache system, I have refactored posts view counting feature to have count to use redis and cache number of views for each post. And also to use redis to retrieve posts view count.

    opened by Noisyboy-9 0
Releases(v1.0)
  • v1.0(Sep 12, 2021)

    This is release marks the end of the project feature implementations. All new releases will have more refactors aimed for cleaner code OR better performance.

    Source code(tar.gz)
    Source code(zip)
Owner
sina shariati
19 y.o mid-senior full stack web developer and CE student at AUT.
sina shariati
Symfony React Blank is a blank symfony and react project, use this template to start your app using Symfony as an backend api and React as a frontend library.

Symfony React Blank Symfony React Blank is a blank symfony and react project, use this template to start your app using Symfony as an backend api and

Antoine Kingue 2 Nov 5, 2021
Create a new project using QuidPHP, LemurCMS and React

QuidPHP/React About QuidPHP/React repository contains a sample application project built on top of the QuidPHP framework. This application is using Le

QuidPHP 2 May 23, 2022
The Laravel Boilerplate Project - https://laravel-boilerplate.com

Laravel Boilerplate (Current: Laravel 8.*) (Demo) Demo Credentials Admin: [email protected] Password: secret User: [email protected] Password: secret Offici

Anthony Rappa 5.4k Jan 4, 2023
Base Laravel project with React and Laravel Sanctum authentication

About this project This is a base Laravel project with ReactJS frontend and Laravel Sanctum API authentication. You could read more about here. Instal

David Toth 8 Oct 25, 2022
Start a new Laravel 8 project with the AdminLTE template installed.

AdminLTE template Laravel 8 package Start a new Laravel 8 project with the AdminLTE template installed. Installation Create database. Clone repository

Mairo Rodrigues 12 Dec 21, 2022
Opinionated way to start a new Laravel project.

Laravel Boilerplate The way I start new Laravel projects. Why? I just got tired of repeating the same things over and over. I made this repository pub

Benjamin Crozat 0 Mar 18, 2022
Modular Laravel - Boilerplate project starter

MODULAR About Modular Laravel This project is a personal blueprint starter with customized modular / SOA architecture. Kostadin Keljtanoski Install Yo

Kostadin Keljtanoski 41 Nov 21, 2022
A script to help setup Laravel project with common packages and configurations

About Snap Snap allow developer to create scaffold Laravel project. Installation Clone this repository in your user home directory. cd ~ git clone htt

Nasrul Hazim Bin Mohamad 3 Jan 4, 2022
Starterkits Project With Laravel + Inertia JS + Vue + Vuetify

Laravel InertiaJS Vuetify A laravel inertiajs vuetify starterkit Demo You can access demo app in : https://laravel-inertia-vuetify.herokuapp.com/ Feat

Ahmad Faiz Kamaludin 21 Dec 16, 2022
Larawiz is a easy project scaffolder for Laravel

The Laravel 8 scaffolder you wanted but never got, until now!

Larawiz 136 Aug 7, 2022