A project to test some development concepts - Laravel App
sandwicher/laravel-app is a Laravel package for a project to test some development concepts - laravel app.
It currently has 0 GitHub stars and 5 downloads on Packagist (latest version 1.0.3).
Install it with composer require sandwicher/laravel-app.
Discover more Laravel packages by sandwicher
or browse all Laravel packages to compare alternatives.
Last updated
A proof of concept project to apply some engineering and development concepts.
This project consists in a simple app that will make any sandwich lover's live easier. Right now everybody that wants to have a sandwich from their favourite local sandwich shop needs to write down their preferred choice, and when you have a large group this app might come in handy to manage your group's meals and orders.
./sail setup-project and just wait for everything to be configured. If no problems occurred in the middle by the end of the command everything should be configured..env file should be automatically generated when you run the ./sail command to setup the project or the docker environment but if you want to do it manually go to the project root and run cp .env.example .env. I you don't do it manually, the default .env file will be automatically generated at some point from the .env-example one so no problem here../sail <command_you_want_to_run>. To get the project started run ./sail up -d. This will setup the docker environment and put all containers running../sail composer install to install all our PHP dependencies./sail npm install && ./sail npm run dev (./sail npm run prod for production) to install our Node.js dependencies for the frontend./sail artisan migrate, which will run all database migrations..env file was already generated previously, if you wish to do any change just simply fill the env variables you wish to change like the database name and credentials for example (which are predefined) and then restart your docker environment ./sail down -v && ./sail build && ./sail up -dunit and acceptance) run ./sail composer testRight now everybody that wants to have a sandwich from their favourite local sandwich shop needs to write down their preferred choice
We need an application backed by a database to manage this (very complex) process.
An administrator should be able to add users (people that are going to eat the sandwich, lets call them consumers).
The administrator should open up “registration” for a new meal. That stops people from ordering stuff separately all the time.
A meal has a status that can be controlled by the admin (open and closed).
Only one meal can be “open” at a single time. And only on an open meal users can register their choice.
A meal also has a date (the date when the meal is eaten)
A meal should also have a unique link. This link can be opened on a mobile device (without a password) to check what the current order is.
Every user should have a unique code he can login with on a certain page. On that page the user can pick:
The user must be able to edit his order (but only when the order/meal is still open).
The user should also be able to view his previous orders when he is “logged in” by his unique link.
Less priority / Optional
This application is following the standard Laravel architecture one which is MVC oriented. The objective here is to have the business logic decoupled from the application in order to be easily used in any application, with any framework. The repository with the domain can be found here.
Besides decoupling the domain from the application, the other goal would be to decouple the application between the frontend and the backend so that any kind of frontend can communicate with our backend which would be a simple API.
The application is currently undergoing some refactoring to start using the domain for our application's business use cases.
This project (both the laravel app and the domain) is currently published to Packagist so it can easily be imported via composer to any project.
The project is integrated with CircleCI to run our tests pipeline (link above).
Currently it is only running the tests but as next steps, a release should be automatically created in the repository with the code after passing all tests to avoid doing this process manually