- PHP-8.1
- Laravel-10
- You have to setup database related credentials properly in .env
- You have to setup mail related credentials properly.
- You have to setup QUEUE_CONNECTION=database to run Queue for sending mail
php artisan migrate
php artisan db:seed
composer update
php artisan key:generate
php artisan serve
goto .env file & update QUEUE_CONNECTION=database
and then run the following command
php artisan queue:work
php artisan queue:listen
php artisan test
php artisan reminder:send
- User can registration for Covid Vaccine.
- User can check registration status
- You (Reviewer) can see all vaccine center list
- You (Reviewer) can see all authenticate users list
- Try to use Repository Pattern
- Used datatable to show all list
- Testing
- Corn Job setup for sending email to the registered user at 09:00 PM before 1 day ago of their vaccine schedule date.
- Mail sent asynchronously
I followed the Surokkha which is Bangladeshi website to register for COVID Vaccine and I try to develope this system like this.
There are few steps to register.
-
Step-1 : User Identification: User have to input their NID number and Birth Date. If it's successful, then it'll goto next step otherwise it'll give you error message.
-
Step-2 : User Information: After verified their NID and birth date, it'll redirect the user into this page. Here user can not change their name and gender but he can input the mobile, email, can select center and finally have to check the checkbox.
-
Step-3 : Final Step - Confirmation: after done all procedure a 6 digit OTP number will be send the user email id. He have to input that OTP number. After matching the OTP, it redirects success page and also the user get a successfull email notification.
Due to time limit I can't add all field. But I try to add at least minimum functionality which are mandatory. I created a normal design because I mainly focus on backend part not in design part.
Though I try to make a better performance to build this system but If I had more time, I would also recommend the following additional optimizations: -
- I would make this system to SPA (Single Page Optimization). And I'll definitely use REACT.js.
- Caching: Use caching mechanisms like Redis or Memcached to store frequently accessed data such as user records or search results. This can significantly reduce the time taken to fetch data from the database.
- Eager Loading: When querying the database for user records or search results, use eager loading to load related data in a single query, instead of making multiple queries. This can help reduce the number of queries made to the database, improving performance.
- Queues: Use Laravel's queue system to offload time-consuming tasks like sending emails or processing data in the background, freeing up server resources for faster user registration and search.
- Optimize Images: Optimize images to reduce their file size and load times. This can help improve the overall performance of the application, especially if I have a lot of images on the site.
To add SMS notifications for vaccine schedule date in Laravel, need to make several changes to our code. Here are the some steps -
-
I have to install a SMS notifications: Laravel provides several packages for sending SMS notifications.
-
Need to create a new notification class that extends the Laravel notification class. This class should implement the via method, which returns the channels through which the notification should be sent. In this case, the via method should return ['sms'].
-
Need to define the SMS channel in our config/services.php file. This channel should specify the credentials and configuration needed to send SMS notifications.
-
Once I created the new notification class for SMS, I need to modify our existing notification class for email to include the SMS notification. In the via method of the email notification class, I should include the sms channel along with the mail channel
-
I can customize the message that is sent in the SMS notification by modifying the to Sms method of your notification class for SMS.
-
Finally, I need to update my code to send both email and SMS notifications when a vaccine schedule date is set. I can do this by chaining the notify method on my user model with instances of both the email and SMS notification classes.