So the idea for this test task is just to evaluate your workflow and make you more familiar to our software development processes.
This repo actually contains a laravel project already integrated with admin panel theme on Vue.JS.
- Clone it
- Update .env with your DB credentials
- Run
composer installin project root dir - Run
yarn - Run
yarn run hot - Run
php artisan servewithout stopping yarn run hot (In a new command window sincephp artisan serve&run hotshould be running at the same time to make development easier with laravel mix)
- Make login screen functional with secure API's and store token according to theme workflow.
- After login show a page which contains a datatable (Included in theme) showing all users with their image thumbnails and a status switch button which should toggle user status in database. It should also show edit Icon on each row.
- User add form button should be at the top of data table. clicking it will popup a form containing Full Name,Email,Phone,Image,Password fields. All field's should be validated on server side via API as well as Client side and should show the error below that field. (Like if we get error from API Invalid Email Address , it should show below that email field)
- Upon adding user, close the popup and show user in data table
- Upon clicking edit Icon on datatable , edit popup will appear with already fill info to update user. Upon saving the info, close the popup and update the table
- Create a del button in datatable to delete that record
- Create API to get/post/put all the saved data in this module with access token generated by login API by sep user which token shouldn't work with admin login
- At first entry http://127.0.0.1:8000/, it should point to Login.vue screen.
- Login Screen should properly validate credentials and show responses from the API's (If email/password is incorrect or even if server is throwing any other errors .i.e. 500)
- After login, if i visit http://127.0.0.1:8000/ it should point us directly to listing screen instead of Login
- Listing screen should match the details provided above in (Application Features) section.
- Each Model of Application should contain its seeder.
- Create a public git repo and push the initial project there in maser/main branch
- Create a branch for each feature like login with name feature/login and after finishing your login work, create a pull request for master (Don't merge it). Then create a new branch for feature/users-listing from feature/login and so on.... follow the same process for each feature
- Each commit should be well descriptive and should not contain much work in it
- Send the repo url when its done on ishaq.hassan@pocketsystems.pk
Lets say, If i copy the listing page url and then clicked the logout button. Now am on login screen and should be considered as un-authenticated. If i use listing page url now, it should Not Allow one to do that .i.e. Redirecting to login screen.