Freelance Hours is a project management platform that connects freelancers with projects. It allows project owners to post their projects with specific tech stack requirements and deadlines, while freelancers can submit proposals with their estimated working hours. The system streamlines the project bidding process and helps manage project timelines effectively.
- Create and publish projects with detailed descriptions
- Specify required tech stack (e.g., Node.js, React, JavaScript)
- Set project deadlines and track status (open/closed)
- View and manage all project proposals
- Submit proposals for open projects
- Specify estimated hours for project completion
- Track proposal status
- Receive notifications about proposal updates
- User authentication and authorization
- Project creation and management for project owners
- Profile management with email verification
- Track created projects and submitted proposals
- Email notifications for proposal updates (currently in log mode)
- Database-backed job queue system
- Database-backed cache system
- JSON storage for tech stack data
- Localized for Brazilian Portuguese (pt_BR)
id
: Unique identifiertitle
: Project titledescription
: Detailed project descriptionends_at
: Project deadlinestatus
: Project status (open/closed)tech_stack
: Required technologies (JSON)created_by
: Project owner reference
id
: Unique identifieremail
: Freelancer's emailhours
: Estimated completion hoursproject_id
: Associated projectposition_status
: Proposal status
- PHP >= 8.1
- Composer
- Node.js & NPM
- SQLite (default) or MySQL
- Clone the repository
git clone https://github.com/rinel-benjamim/freelance-hours.git
cd freelance-hours
- Install PHP dependencies
composer install
- Install Node dependencies
npm install
- Environment Setup
cp .env.example .env
php artisan key:generate
- Database Setup By default, the project uses SQLite. Create the database file:
touch database/database.sqlite
If you prefer MySQL, update these settings in your .env file:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
- Run migrations
php artisan migrate
- Start the development server
php artisan serve
- Configure queue worker The project uses a database queue driver. Start the queue worker:
php artisan queue:work database
Visit http://localhost:8000
in your browser.
- Application Name: FreelanceHours
- Timezone: UTC
- Locale: pt_BR (Brazilian Portuguese)
- Debug Mode: Enabled in development
- Session: Database
- Cache: Database
- Queue: Database
- Filesystem: Local
- Mail: Log driver (for development)
- Session Lifetime: 120 minutes
- Session Encryption: Disabled
- BCrypt Rounds: 12
- Backend: Laravel 10.x, PHP 8.1
- Frontend: TailwindCSS, JavaScript
- Database: SQLite (default) / MySQL (optional)
- Queue System: Laravel Jobs with Database Driver
- Cache: Laravel Cache with Database Driver
- Development: Vite
Full-stack developer specialized in Laravel and modern web development technologies. Creating efficient solutions for real-world freelancing challenges.
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request