This is a Laravel + Vue.js application that demonstrates a "Trusted Contacts" feature for managing freelancers in a company's talent pool.
- PHP 8.2+
- Composer
- Node.js 18+
- NPM
- 
Clone and Setup git clone worksome/fullstack-case cd fullstack-case composer install npm install
- 
Environment Configuration cp .env.example .env php artisan key:generate 
- 
Database Setup # The project uses SQLite by default touch database/database.sqlite php artisan migrate --seed
- 
Build Assets # For development npm run dev # For production npm run build 
- 
Start the Application php artisan serve 
- 
Access the Application - Visit: http://localhost:8000
- The app will display a table of trusted contacts with sample data
 
- Visit: 
In Worksome, clients can add workers as "Trusted Contacts" to their Talent Pool for future hires. This application demonstrates the foundation for such a system and proposes a Notes feature for Trusted Contacts.
- ✅ Trusted Contacts List: Displays freelancers with names, skills, and location
- ✅ Contact Details: Click on any contact to view their profile in a sidebar
- ✅ Clean Data Architecture: Proper Laravel models and relationships
- ✅ Modern Frontend: Vue.js with Tailwind CSS for responsive UI
The Notes feature should allow client users to share internal information on workers in their Talent Pool:
- A note has a relation to the company and the Trusted Contact
- A Trusted Contact can have more than one note
- Company users should be able to create, read, update and delete notes
- The UI should be fully responsive without page reloads
-- Current Tables
companies (id, name, currency, market)
freelancers (id, name, email, currency, market, country, city)
company_freelancer (id, company_id, freelancer_id, skills)- Company ↔ Freelancer (Many-to-Many via company_freelancer)
- Freelancer: Has avatar accessor for initials generation
- CompanyFreelancer: Pivot model with skills (JSON array)
- Vue.js 3 with Composition API
- Tailwind CSS for styling
- Component Structure:
- TrustedContacts.vue- Main table view
- ContactSlider.vue- Profile sidebar
 
Please share your thoughts on the following areas for implementing the Notes feature:
- Relations, database schema, types etc.
- Controllers, classes, models, API etc.
- Components, styling, state management, validation, API etc.
You're welcome to share thoughts about related topics in the context of this feature, such as:
- User permissions
- Performance
- Security
- Testing
- Notifications
- UX
- Additional functionality for the feature
- Backend: Laravel 11, PHP 8.2+
- Frontend: Vue.js 3, Tailwind CSS
- Database: SQLite (development), MySQL/PostgreSQL (production)
- Build Tools: Vite
- Styling: Tailwind CSS v4
This application demonstrates modern Laravel development practices with clean architecture, proper relationships, and a responsive Vue.js frontend.