0% found this document useful (0 votes)
18 views2 pages

Full Stack Developer Test Overview

The document outlines a test for a Full Stack Developer to build a Task Management Application using Laravel for the backend and React/Next.js for the frontend. Key features include user authentication, task management with CRUD operations, and optional enhancements like pagination and filtering. The project should be structured with version control, include a README, and has bonus points for additional features such as form validation and responsive design.

Uploaded by

woodhive77
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views2 pages

Full Stack Developer Test Overview

The document outlines a test for a Full Stack Developer to build a Task Management Application using Laravel for the backend and React/Next.js for the frontend. Key features include user authentication, task management with CRUD operations, and optional enhancements like pagination and filtering. The project should be structured with version control, include a README, and has bonus points for additional features such as form validation and responsive design.

Uploaded by

woodhive77
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

🧪 Full Stack Developer Test (Laravel + React/Next.

js)

🎯 Objective

Build a simple Task Management Application where users can:

• Register/Login
• Create and manage their tasks
• Tasks include: title, description, due date, and status (pending, in-progress,
completed)

🧩 Requirements

🔒 Authentication

• User registration and login


• Use Laravel Sanctum for API token-based auth
• Use protected routes for logged-in users

📦 Backend (Laravel API)

• Laravel 10+
• Sanctum for API authentication
• Create APIs for:
o Register/Login
o CRUD for Tasks
• Each task belongs to a user
• Optional: Add pagination and filtering (status, due date, etc.)

🧑‍🎨 Frontend (React/[Link])

• [Link] 13/14+ (App or Pages router acceptable)


• Tailwind CSS for styling (bonus if used)
• Login/Register pages
• Dashboard to:
o List all tasks
o Create new task
o Edit and delete tasks
o Filter by status
• Use Axios or React Query to connect to API
• Protect routes using a simple auth mechanism (like storing token in
localStorage/cookies)

📁 Project Structure & Submission

• Use GitHub or GitLab for version control


• Include a README with setup instructions
• Separate folders for frontend and backend or use monorepo with client/ and server/

🏆 Bonus Points
• Form validation on frontend and backend
• Nice UI/UX using Tailwind or any UI library
• Use of Laravel API Resources
• Use of TypeScript in React project
• Responsive design
• Docker setup for easy running (optional)
• Tests using PHPUnit or Pest

⏱ Time Estimate

~6–8 hours max for a skilled developer. Can be done over 1–2 days.

Common questions

Powered by AI

The primary tools and frameworks recommended for the frontend of the Task Management Application are React with Next.js (version 13/14+), and optionally, Tailwind CSS for styling. React Query or Axios is suggested for connecting to the backend APIs, and simple authentication mechanisms like token storage in localStorage or cookies are part of the setup .

Including pagination and task filtering options enhances user experience by providing a more organized and efficient method to access and manage large amounts of task data. These features allow users to retrieve tasks by certain criteria (e.g., status or due date), which helps in better managing workloads and improves performance by reducing the amount of data loaded at once. Thus, these are critical for scalability and usability in task management applications .

Adding unit tests using PHPUnit or Pest validates the functionality of specific components in the Task Management Application, ensuring that individual units of code, such as functions and methods, work as intended. These tests help identify bugs early, facilitate refactoring, and confirm that changes do not introduce new issues, thereby contributing to a robust and reliable application development process .

The requirement to use GitHub or GitLab for version control indicates a focus on structured project management and collaborative development practices. It suggests tracking changes, facilitating code reviews, and maintaining a clear history of the project's progress, which is essential for teamwork and maintaining code integrity over the project lifecycle .

Laravel Sanctum provides an API token-based authentication system, making it possible to create secure APIs where users need to register and login to access their tasks. It supports protected routes for logged-in users, ensuring that only authenticated users can perform certain actions. This system contributes to security and user-specific operations in the application .

The core functionalities that a user should be able to perform include registering and logging in, creating and managing tasks. Each task should have properties such as title, description, due date, and status (pending, in-progress, completed). This allows users to organize and keep track of their tasks .

Implementing form validation on both the frontend and backend improves robustness by ensuring that data is correct and conforms to expected formats before it is processed or stored. Frontend validation provides immediate feedback to users, reducing errors before submission, while backend validation acts as a second layer of protection against malformed data or malicious inputs. This redundancy enhances security and data integrity .

Using a monorepo structure facilitates streamlined development by housing both frontend and backend codebases in one repository. This approach improves code synchronization, facilitates easier refactoring, and simplifies cross-cutting changes. Additionally, it can support better package management, dependency sharing, and overall integration testing, which enhances the team's productivity and project maintainability .

Choosing between storing tokens in localStorage and cookies involves considerations of security and ease of access. localStorage is subject to XSS attacks but is easier to use for JavaScript client-side applications. Cookies, when secured with HttpOnly and Secure flags, offer better protection against XSS but require server configurations to manage cross-origin requests. Ultimately, cookies provide enhanced security but at the cost of increased complexity .

Incorporating Docker setup can drastically enhance the deployment process by providing a consistent runtime environment for the application. This ensures that the application runs identically across different environments (development, testing, production), reducing

You might also like