├── public ├── favicon.ico ├── robots.txt ├── .DS_Store ├── mix-manifest.json ├── .htaccess ├── index.php └── svg │ ├── 404.svg │ ├── 503.svg │ └── 403.svg ├── database ├── .gitignore ├── factories │ ├── TaskFactory.php │ ├── ProjectFactory.php │ └── UserFactory.php ├── seeds │ └── DatabaseSeeder.php └── migrations │ ├── 2014_10_12_100000_create_password_resets_table.php │ ├── 2019_01_12_191142_create_tasks_table.php │ ├── 2019_02_27_181525_create_project_members_table.php │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2018_12_17_150648_create_projects_table.php │ └── 2019_01_24_143508_create_activities_table.php ├── bootstrap ├── cache │ └── .gitignore └── app.php ├── storage ├── logs │ └── .gitignore ├── app │ ├── public │ │ └── .gitignore │ └── .gitignore └── framework │ ├── testing │ └── .gitignore │ ├── views │ └── .gitignore │ ├── cache │ ├── data │ │ └── .gitignore │ └── .gitignore │ ├── sessions │ └── .gitignore │ └── .gitignore ├── resources ├── sass │ ├── components │ │ ├── card.scss │ │ ├── dropdown.scss │ │ └── button.scss │ ├── app.scss │ └── themes │ │ ├── dark.scss │ │ └── light.scss ├── views │ ├── projects │ │ ├── activity │ │ │ ├── created_project.blade.php │ │ │ ├── completed_task.blade.php │ │ │ ├── created_task.blade.php │ │ │ ├── incompleted_task.blade.php │ │ │ ├── updated_project.blade.php │ │ │ └── card.blade.php │ │ ├── create.blade.php │ │ ├── edit.blade.php │ │ ├── invite.blade.php │ │ ├── card.blade.php │ │ ├── index.blade.php │ │ ├── form.blade.php │ │ └── show.blade.php │ ├── errors.blade.php │ ├── auth │ │ ├── verify.blade.php │ │ ├── passwords │ │ │ ├── email.blade.php │ │ │ └── reset.blade.php │ │ ├── login.blade.php │ │ └── register.blade.php │ ├── welcome.blade.php │ └── layouts │ │ └── app.blade.php ├── js │ ├── bootstrap.js │ ├── app.js │ └── components │ │ ├── ThemeSwitcher.vue │ │ ├── BirdboardForm.js │ │ ├── Dropdown.vue │ │ └── NewProjectModal.vue └── lang │ └── en │ ├── pagination.php │ ├── auth.php │ ├── passwords.php │ └── validation.php ├── .gitattributes ├── .gitignore ├── .editorconfig ├── app ├── Http │ ├── Controllers │ │ ├── HomeController.php │ │ ├── Controller.php │ │ ├── ProjectInvitationsController.php │ │ ├── Auth │ │ │ ├── ForgotPasswordController.php │ │ │ ├── LoginController.php │ │ │ ├── ResetPasswordController.php │ │ │ ├── VerificationController.php │ │ │ └── RegisterController.php │ │ ├── ProjectTasksController.php │ │ └── ProjectsController.php │ ├── Middleware │ │ ├── EncryptCookies.php │ │ ├── CheckForMaintenanceMode.php │ │ ├── TrimStrings.php │ │ ├── TrustProxies.php │ │ ├── Authenticate.php │ │ ├── VerifyCsrfToken.php │ │ └── RedirectIfAuthenticated.php │ ├── Requests │ │ └── ProjectInvitationRequest.php │ └── Kernel.php ├── helpers.php ├── Providers │ ├── BroadcastServiceProvider.php │ ├── AppServiceProvider.php │ ├── AuthServiceProvider.php │ ├── EventServiceProvider.php │ └── RouteServiceProvider.php ├── Policies │ └── ProjectPolicy.php ├── Activity.php ├── Console │ └── Kernel.php ├── User.php ├── Exceptions │ └── Handler.php ├── Task.php ├── Project.php └── RecordsActivity.php ├── tests ├── TestCase.php ├── CreatesApplication.php ├── Unit │ ├── ActivityTest.php │ ├── UserTest.php │ ├── ProjectTest.php │ └── TaskTest.php ├── Setup │ └── ProjectFactory.php └── Feature │ ├── InvitationsTest.php │ ├── TriggerActivityTest.php │ ├── ProjectTasksTest.php │ └── ManageProjectsTest.php ├── routes ├── channels.php ├── api.php ├── console.php └── web.php ├── server.php ├── webpack.mix.js ├── .env.example ├── config ├── view.php ├── services.php ├── hashing.php ├── broadcasting.php ├── filesystems.php ├── queue.php ├── logging.php ├── cache.php ├── auth.php ├── database.php ├── mail.php ├── session.php └── app.php ├── package.json ├── phpunit.xml ├── artisan └── composer.json /public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/framework/testing/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /public/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laracasts/birdboard/HEAD/public/.DS_Store -------------------------------------------------------------------------------- /resources/sass/components/card.scss: -------------------------------------------------------------------------------- 1 | .card { 2 | @apply .bg-card .p-5 .rounded-lg .shadow; 3 | } 4 | -------------------------------------------------------------------------------- /public/mix-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "/js/app.js": "/js/app.js", 3 | "/css/app.css": "/css/app.css" 4 | } 5 | -------------------------------------------------------------------------------- /resources/views/projects/activity/created_project.blade.php: -------------------------------------------------------------------------------- 1 | {{ $activity->user->name }} created the project 2 | -------------------------------------------------------------------------------- /resources/views/projects/activity/completed_task.blade.php: -------------------------------------------------------------------------------- 1 | {{ $activity->user->name }} completed "{{ $activity->subject->body }}" 2 | -------------------------------------------------------------------------------- /resources/views/projects/activity/created_task.blade.php: -------------------------------------------------------------------------------- 1 | {{ $activity->user->name }} created "{{ $activity->subject->body }}" 2 | -------------------------------------------------------------------------------- /resources/views/projects/activity/incompleted_task.blade.php: -------------------------------------------------------------------------------- 1 | {{ $activity->user->name }} incompleted "{{ $activity->subject->body }}" 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | *.js linguist-vendored 5 | CHANGELOG.md export-ignore 6 | -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | config.php 2 | routes.php 3 | schedule-* 4 | compiled.php 5 | services.json 6 | events.scanned.php 7 | routes.scanned.php 8 | down 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /public/hot 3 | /public/storage 4 | /storage/*.key 5 | /vendor 6 | .env 7 | .phpunit.result.cache 8 | Homestead.json 9 | Homestead.yaml 10 | npm-debug.log 11 | yarn-error.log 12 | /.idea 13 | -------------------------------------------------------------------------------- /resources/views/projects/activity/updated_project.blade.php: -------------------------------------------------------------------------------- 1 | @if (count($activity->changes['after']) == 1) 2 | {{ $activity->user->name }} updated the {{ key($activity->changes['after']) }} of the project 3 | @else 4 | {{ $activity->user->name }} updated the project 5 | @endif -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = space 8 | indent_size = 4 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.yml] 15 | indent_size = 2 16 | -------------------------------------------------------------------------------- /resources/views/errors.blade.php: -------------------------------------------------------------------------------- 1 | @if ($errors->{ $bag ?? 'default' }->any()) 2 |
7 | My Projects 8 | / {{ $project->title }} 9 |
10 | 11 |