Best laravel framework open-source packages.

Vacations planner

A web application allowing companies to schedule their employees' vacations.
Updated 2 months ago

Welcome to Vacation Planner 👋

Version Documentation Maintenance License: MIT Twitter: gkondev

A web application allowing companies to schedule their employees vacations

What is Vacation Planner

Vacation planner is a side/pet project written in plain PHP, allowing companies to schedule their employees' vacations. It has the following features:

  • Login / Registrer functionality
  • Supervisor / Employee roles
  • Supervisors can manage their employees from the admin dashboard
  • Employees can request vacation time from their supervisor
  • Supervisors can approve / reject vacation time
  • Supervisors can see all vacations in a practical calendar
  • All notifications are performed via email

What was implemented in the backend

I tried to implement my own simple version of Laravel, so I can dive into PHP internals like Reflection, sessions and more, as well as find ways to correctly structure all these components and make them work together. So, these are some of the things that were implemented in this project.

  • A custom router following the MVC pattern, allowing to use controllers and middlewares
  • A simple ORM to perform database operations
  • Facades for accessing request data, accessing the database and more
  • A simple Dependency Injection container to instantiate controller dependencies
  • Error handling using custom exceptions as well as global error handling
  • Custom validators that can be injected in controllers through the DI container
  • Authentication / authorization using bcrypt and PHP sessions
  • Commands to be able to run multiple operations in a queue and later abstract it in a queue worker
  • A simple mailer library using PHPMailer
  • Migration and seed scripts

Prerequisites

To setup this project you have to install NodeJS and Docker in your computer. I have tested this setup in a Unix environment but it will probably work in Windows / Mac too.

Technologies Used

  • PHP
  • Composer
  • VueJS
  • Docker
  • MySQL

Setup

Run the following commands in the project's root folder.

composer install

cd frontend && npm install

cd ..

cp .env.example .env

cp frontend/.env.example frontend/.env

After finishing the above steps, setup your smtp info in the .env file.

Run the project

Run the following commands

docker-compose up

npm run migrate

After running these commands you will have a fully working docker environment and all database tables will be in place.`

You can then access the frontend of the application at http://localhost:8080 and the API at http://localhost:8081.

Screenshots

Author

👤 George Koniaris

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2020 George Koniaris.
This project is MIT licensed.


This README was generated with ❤️ by readme-md-generator