As the name suggests, Shorty shrinks your looooong boring URLs to pretty short URLs with ease! It's Vue and Laravel powered simple web application.
- Login/Registration, Reset Password
- Shorten Long URLs
- Copy/Delete URLs
- View creation date and number of link visits count
- Single Page Application/SPA feels around
- more coming soon
Please check the Laravel Official Documentation installation guide for server requirements before you start.
First, clone this repo
git clone https://github.com/alnahian2003/shorty.gitSwitch to the repo folder
cd shortyInstall all the dependencies using composer and npm.
composer installPlease use --force at end of the command, because there are some issues with the versioning of some Vite and Vue related packages. Trust me, this project has nothing to with this confliction. So, just avoid those npm related Warnings.
npm install --forceCopy the .env.example file and make the required configuration changes in the .env file
cp .env.example .envGenerate a new application key
php artisan key:generateRun the database migrations (Set the database connection in .env before migrating)
php artisan migrateStart the local development server
php artisan serveStart Vite for bundling the assets or Hot Module Reload (required)
npm run devYou can now access the server at http://localhost:8000.
All the command list
git clone https://github.com/alnahian2003/shorty.gitcd shortycomposer installnpm install --forcecp .env.example .envphp artisan key:generatephp artisan migratephp artisan servenpm run devPopulate the database with seed data that includes relationships. This can help you to quickly get started and explore inside out of this project.
Run the database seeder, and this will do it!
php artisan db:seedThe seed data includes a demo user with associated urls. Here are the credentials:
email: admin@admin.com
password: passwordNote : It's recommended to have a clean database before seeding. You can fresh your tables at any point to clean the database by running the following command
php artisan migrate:freshClient Side: TailwindCSS, Vue 3
Server Side: PHP, Laravel
Database: Sqlite 3
- Add profile feature
- Use Gates & Policy to authorize
- Maybe provide analytical data on profile/dashboard
- Use Eloquent API Resource instead of Controllers for APIs
Please be advised that whenever you'll try to update the repo or install a new npm package using *npm* then always use --force flag at end of the command. This repo has some conflicts with versioning problem of vite and laravel.
For support, contact me or pull an issue.
