The whole team here at CakeDC are big supporters and contributors of the CakePHP community. For this month, I decided to do “one CakePHP project per day” to share with the community.
Here are some of my projects so far:
Project 01 - Notes App
A one page note application using CakePHP 4 and Bootstrap 5. This project is a good starting point to learn the framework.
Link: https://github.com/rochamarcelo/one-project-a-day-challenge-01-notes
Project 02 - Contact List
An application to manage contacts - you are able to list, add, edit and delete contacts, upload contact avatar images or use avatar images from gravatar.com . It was built using CakePHP 4, plugin friendsofcake/search, plugin josegonzalez/cakephp-upload, Gravatar, and Bootstrap 5.
Link: https://github.com/rochamarcelo/one-project-a-day-challenge-02-contact-list
Project 03 - Recipe Box
An application to manage recipes, using CakePHP 4, CouchDB and Bootstrap 5. This one is a good starting point to learn to use CouchDB with CakePHP, including how to list, add and edit recipes (documents).
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-03-recipe-box
Project 04 - Service Plan with Exchange rate
An application to list services and apply exchange rate using the api https://exchangeratesapi.io/documentation/ and CakePHP 4. In this one you see the custom namespace WebService to handle logic related to api as client.
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-04-service-plans-ex-rate
Project 05 - Polls
A fun poll app, using the awesome Bulma CSS Framework and CakePHP 4. A good example of model association and the CounterCache Behavior.
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-05-polls-emmy
Project 06 - Movie Theater Schedule
An application to see which movies are in the theaters and which hours by screen each day of the week. A good example of complex queries, model associations and seed data.
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-06-movie-theater-schedule
Project 07 - Podcast Finder
An application to help easily find podcasts and download episodes. In the source code you’ll find how to use the itunes api, a structure to handle Model actions (that I think is a good option to make your models cleaner), and a way to parse podcasts feed (XML); example usage of dependency injection. The application was built with CakePHP 4 and Bulma CSS Framework.
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-07-podcast-finder
Project 08 - Url Shortener
An application to create short urls - a good example of how to create custom routes and use custom primary key types for a model. The application was built with CakePHP 4.
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-08-url-shortener
Project 09 - Quiz
Users can list quizzes, create quizzes and answer at any time. A good example of how to use MongoDB with CakePHP 4 with a base structure for Collection classes.
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-09-quiz
Project 10 - File Transfer
An application to easily send files to anyone, create an account, upload the file and inform the person email to send to. Built with CakePHP 4, plugin CakeDC/Users, plugin Josegonzalez/Upload, plugin friendsofcake/bootstrap-ui, SMTP and Bootstrap. A good example to see the usage of these plugins.
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-10-file-transfer
Project 11 - Tasks
A one page application for users to manage their tasks. The user can create and remove decks, create and complete tasks, and list tasks grouped by decks. Built with CakePHP 4, plugin CakeDC/Users and Bootstrap 5
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-11-tasks
Project 12 - Blog
A blog website with blog posts and tags management, WYSIWYG editor, blog search, tags filtering. Built with CakePHP 4, CakeDC/Users plugin, friendsofcake/bootstrap-ui, Muffin/Slug, friendsofcake/search and Bootstrap 4 . A good example of usage of custom routes, route prefix, finders and multiple plugins.
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-12-blog
Project 13 - Olympic Medal Count
Perfect time for this project, right?! An application to display olympic medal count by country and sports. The source code uses CouterCache behavior and aggregated query. Built with CakePHP 4 and Bootstrap 5.
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-13-olympic-medal-count
Project 14 - Smart Home Dashboard
An awesome dashboard to manage smart devices using MQTT Messaging, CakePHP 4, CakeDC/Users plugin, php-mqtt/client (testing with Mosquitto Broker) and Bootstrap 5. The application is able to publish messages to change device status and subscribe for status changes.
Link: https://github.com/rochamarcelo/one-cakephp-project-a-day-challenge-14-smart-home-dashboard-mqtt
I hope that this initiative will somehow inspire others to put their Cake skills to work, and share their projects with the community. If you’d like to see my future projects and posts, you can follow me on Twitter, and I will share them all there!