• This repository has been archived on 03/Jul/2022
  • Stars
    star
    214
  • Rank 184,678 (Top 4 %)
  • Language
    PHP
  • Created about 11 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Helping you select a MVC Framework showing you the source code of a Blog App

Helping you select a MVC Framework

These days there are plenty of Frameworks that can be used to create your server side code. CakePHP, Symfony 2, Laravel, CodeIgniter, Zend, Ruby On Rails... The list keeps growing and it's not easy to make a choice on what language or what framework to choose.

The goal of this project is to demonstrate how every frameworks works with a simple example : a Blog App.

Getting Involved

Unfortunately I don't know how to work with every frameworks (impossibru !) so I need you to create the Blog App using your framework of choice (not necessary PHP Framework, you can use ruby, python, java...).

You have to create a blog app using the HTML samples inside the HTML directory : HTML demo. The app is quite simple, you can manage posts, browse posts, and submit new comments (the goal is not to create a fully featured blog, but just a sample of code)

Database structure

You can rename table and fields depending of your Framework conventions and you can even use migrations if your framework support it.

  • categories (HasMany Post)
    • id
    • name
    • slug (used for url rewrite)
    • post_count (count post associated with it)
  • comments (belongsTo Post)
    • id
    • post_id
    • username (not empty validation)
    • mail (email validation)
    • content (not empty validation)
    • created (date)
  • posts (belongsTo Category, belongsTo User, hasMany Comments)
    • id
    • category_id
    • user_id
    • name (not empty validation)
    • slug (can be empty, then slug is generated from name)
    • content (not empty validation)
    • created
  • users (hasMany Posts, used for authentification)
    • id
    • username
    • password

Routing

With great power, comes great routing ! (No seriously don't make the SEO guy angry)

  • / The homepage with blog posts
  • /category/{slug} Posts from a category
  • /author/{id} Posts from an author
  • /{slug} Single
  • /admin Backend entry point
  • /....?page=2 Pagination using query parameters

Additional rules

  • code for php >= 5.4 (it means you can use <?= !)
  • Post content is written using Markdown, you have to include a plugin (homemade or not) to convert this Markdown into HTML. (It's used to show how plugin work within each framework).
  • You have to login to access to the backend. The login is "admin" and the password is "admin" (use the users table to manage user).
  • Pagination is limited to 5 posts per page.
  • Posts and Comments are ordered this way : the newer first.
  • Data has to be validated before saving (for Post and Comments, see the database structure section), there is no "antispam" for the comment submission.
  • The blog has a sidebar that is the same for every page
  • Finally you have to create a readme.md to explain how to setup your framework and the requirements.

More Repositories

1

Grafikart.fr

Dépôt pour la nouvelle version de Grafikart.fr
PHP
634
star
2

JS-Markdown-Editor

An easy to use markdown editor with live preview and Image uploading
JavaScript
225
star
3

Zoombox

Zoombox is an easy to use Javascript class that allow you to overlay images and videos on the current page.
JavaScript
160
star
4

dotfiles

Personnal dotfiles to make new servers feel like home
Shell
115
star
5

CSS3-Loaders

CSS
105
star
6

CustomElement-DropFiles

Customized built-in element to add user interactions on a file input with multiple files as a progressive enhancement.
TypeScript
88
star
7

filemanager-element

A simple file browser distributed as a custom element
TypeScript
78
star
8

grafisearch

Un front pour faire mes recherches en local
TypeScript
54
star
9

WPHP-Framework

Un framework pour wordpress dédié au développeur PHP
PHP
52
star
10

intellij-tinacious

🚥 Tinacious Design syntax theme for Jetbrains IDE
46
star
11

dev-map

Carte d'apprentissage du développement Web
TypeScript
45
star
12

OpenApiToTS

Convert openapi.yml file to ts declaration
TypeScript
40
star
13

ReorderJS

Parceque je voulais un système permettant de réorganiser des éléments en grille
JavaScript
37
star
14

Grafikart-DockerPHP

Docker image for Grafikart
Dockerfile
34
star
15

tokyo-night-jetbrains-theme

29
star
16

olympics-medals

CSS
25
star
17

CustomElement-SpinningDots

A spinning loader, with dots
JavaScript
24
star
18

headless-elements

Custom HTML elements for generic components (dropdown, modal...) without style.
JavaScript
23
star
19

WebDeckOBS

TypeScript
23
star
20

Neon-Startpage

Trying to reproduce Opera Neon StartPage
JavaScript
22
star
21

video.grafikart.fr

Un serveur NodeJS pour gérer le streaming de video et l'upload youtube
TypeScript
19
star
22

Challenges

JavaScript
16
star
23

BlogMVC-Laravel

BlogMVC done with Laravel 5
PHP
16
star
24

twitch-overlay

The code of my twitch overlay
JavaScript
15
star
25

Tracky

Tracky chrome extension source code
CSS
15
star
26

DigestTracker

Dashboard pour le suivie de problèmes digestif
PHP
14
star
27

grafibot

Bot discord
TypeScript
13
star
28

shaper

WIP : Un pictionary mais avec 15 trait droits (sans courbes)
TypeScript
11
star
29

Grafilang

Un langage de programmation simplifié pour apprendre l'algorithmique
TypeScript
10
star
30

subsearch

Learning golang
Go
8
star
31

PokeNative

A pokemon app created using react native
TypeScript
7
star
32

go-web-boilerplate

This is a boilerplate when starting a new web server using golang.
Go
7
star
33

siteback

Petit outil personnel qui permet de sauvegarder un site rapidement
Go
6
star
34

ColorExtractor

Extract color from a file and display a grid.
JavaScript
6
star
35

TutoRecipeApi

Préparation d'une petite API en prévision du TP React.
TypeScript
6
star
36

PSR15-CsrfMiddleware

A PSR-15 compatible middleware to prevent CSRF
PHP
5
star
37

Slides

Code source des slides utilisés pour certaines vidéos
HTML
5
star
38

elixir-bootform

Create bootstrap forms with elixir
Elixir
5
star
39

rtag

A Cli tool to generate marker when recording a video
Go
5
star
40

nvim

Nvim configuration
Lua
4
star
41

demo-error-vite

HTML
3
star
42

StreamlabCSS

Dépôt pour tester et créer le CSS du tchat streamlabs
JavaScript
3
star
43

PrepWP

Code pour un tutoriel WordPress
PHP
3
star
44

TrashRepo

For demo purpose
SCSS
2
star
45

PrepReactQuery

Dépôt pour tester react query
JavaScript
2
star
46

SubtitleMe

Une expérimentation avec Electron (WIP)
JavaScript
2
star
47

arraytree-gem

The goal of this gem is to add some usefull methods for array.
Ruby
1
star