12 | Join Shorty, 13 | Save Time 14 |
15 | 16 |17 | Don't think about it, do it! 18 |
19 | 20 | 119 |├── public ├── favicon.ico ├── robots.txt ├── .htaccess └── index.php ├── database ├── .gitignore ├── seeders │ ├── UrlSeeder.php │ └── DatabaseSeeder.php ├── factories │ ├── UrlFactory.php │ └── UserFactory.php └── migrations │ ├── 2014_10_12_100000_create_password_resets_table.php │ ├── 2023_01_07_200800_create_urls_table.php │ ├── 2014_10_12_000000_create_users_table.php │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ └── 2019_12_14_000001_create_personal_access_tokens_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 ├── preview.png ├── resources ├── css │ └── app.css ├── js │ ├── bootstrap.js │ ├── components │ │ ├── TheLogo.vue │ │ ├── buttons │ │ │ ├── DeleteUrl.vue │ │ │ └── CopyToClipboard.vue │ │ ├── UrlForm.vue │ │ ├── layouts │ │ │ ├── Footer.vue │ │ │ └── Header.vue │ │ ├── ThePagination.vue │ │ └── UrlCard.vue │ ├── pages │ │ ├── 404.vue │ │ ├── ForgotPassword.vue │ │ ├── Login.vue │ │ ├── ResetPassword.vue │ │ ├── Signup.vue │ │ └── TheIndex.vue │ ├── router │ │ └── index.js │ ├── app.js │ └── App.vue └── views │ └── welcome.blade.php ├── postcss.config.js ├── routes ├── api.php ├── channels.php ├── console.php └── web.php ├── tests ├── TestCase.php ├── Unit │ └── ExampleTest.php ├── Feature │ └── ExampleTest.php └── CreatesApplication.php ├── .gitattributes ├── .gitignore ├── .editorconfig ├── app ├── Http │ ├── Middleware │ │ ├── EncryptCookies.php │ │ ├── VerifyCsrfToken.php │ │ ├── PreventRequestsDuringMaintenance.php │ │ ├── TrustHosts.php │ │ ├── TrimStrings.php │ │ ├── Authenticate.php │ │ ├── ValidateSignature.php │ │ ├── TrustProxies.php │ │ └── RedirectIfAuthenticated.php │ ├── Controllers │ │ ├── Controller.php │ │ ├── Auth │ │ │ ├── ForgotPasswordController.php │ │ │ ├── ResetPasswordController.php │ │ │ ├── LoginController.php │ │ │ ├── ConfirmPasswordController.php │ │ │ ├── VerificationController.php │ │ │ └── RegisterController.php │ │ └── UrlController.php │ ├── Requests │ │ ├── StoreUrlRequest.php │ │ └── UpdateUrlRequest.php │ └── Kernel.php ├── Providers │ ├── BroadcastServiceProvider.php │ ├── AppServiceProvider.php │ ├── AuthServiceProvider.php │ ├── EventServiceProvider.php │ └── RouteServiceProvider.php ├── Console │ └── Kernel.php ├── Exceptions │ └── Handler.php ├── Models │ ├── User.php │ └── Url.php └── Policies │ └── UrlPolicy.php ├── tailwind.config.js ├── lang └── en │ ├── pagination.php │ ├── auth.php │ ├── passwords.php │ └── validation.php ├── vite.config.js ├── package.json ├── config ├── cors.php ├── services.php ├── view.php ├── hashing.php ├── broadcasting.php ├── sanctum.php ├── filesystems.php ├── queue.php ├── cache.php ├── mail.php ├── auth.php ├── logging.php ├── database.php ├── session.php └── app.php ├── phpunit.xml ├── .env.example ├── artisan ├── composer.json └── README.md /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 | -------------------------------------------------------------------------------- /preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Phoenix-Genius/shorty/HEAD/preview.png -------------------------------------------------------------------------------- /resources/css/app.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /routes/api.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Middleware/VerifyCsrfToken.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Controllers/Controller.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrustHosts.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public function hosts() 15 | { 16 | return [ 17 | $this->allSubdomainsOfApplicationUrl(), 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/Http/Middleware/TrimStrings.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | 'current_password', 16 | 'password', 17 | 'password_confirmation', 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /tests/Feature/ExampleTest.php: -------------------------------------------------------------------------------- 1 | get('/'); 18 | 19 | $response->assertStatus(200); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/CreatesApplication.php: -------------------------------------------------------------------------------- 1 | make(Kernel::class)->bootstrap(); 19 | 20 | return $app; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Providers/BroadcastServiceProvider.php: -------------------------------------------------------------------------------- 1 | command->ask("How many Urls do you want to seed?", 10); 19 | Url::factory($amount)->create(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | expectsJson()) { 18 | return route('login'); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/Http/Middleware/ValidateSignature.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | protected $except = [ 15 | // 'fbclid', 16 | // 'utm_campaign', 17 | // 'utm_content', 18 | // 'utm_medium', 19 | // 'utm_source', 20 | // 'utm_term', 21 | ]; 22 | } 23 | -------------------------------------------------------------------------------- /resources/views/welcome.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |11 | Sorry, we couldn't find this page. 12 |
13 |14 | But dont worry, you can easily shorten your boring loooooong 15 | URLs from our homepage. 16 |
17 |11 | Don't worry, we got you! It won't take more than five minutes to 12 | recover your account. Trust me bro 🙏🏼 13 |
14 | 15 | 48 |34 | Page {{ items.current_page }} of 35 | {{ items.last_page }} 36 |
37 |11 | Hey 👋🏼 buddy! Listen, login to your account now so that you can 12 | manage all your shorten links more securly! 13 |
14 | 15 | 71 |11 | You're almost there! Now set a new password for your account 🔑 12 |
13 | 14 | 76 |29 | {{ freshUrl(prettyUrl(item.short_url)) }} 30 |
31 | 46 | 47 | 48 | 49 |56 | 60 | 79 | 80 | {{ item.visits.toLocaleString() }} 81 | 82 | {{ item.created_at }} 83 |
84 | 85 | 86 |17 | Don't think about it, do it! 18 |
19 | 20 | 119 |19 | Copy your long boring url. Paste it below. Then 💥 You 20 | got it, right? 21 |
22 | 23 | 24 |31 | {{ error }} 32 |
33 | 34 |35 | Vue & Laravel powered URL shortener ✨ 36 |
37 |54 | Here are your shortened URLs! Now start 55 | rick-rolling your friends 😆 56 |
57 |