An internal notes module built using Symfony 4.4 (LTS) as part of a recruitment task.
- PHP 7.x
- Symfony 4.4 (LTS)
- Doctrine ORM
- Twig
- MySQL
- List all notes
- Create a new note
- Edit a note
- Delete a note
- Authentication already exists in the system
- A User entity is available (used for the mid-task requirement)
- UI/UX is not a priority for this task
After receiving the requirement to make notes user-specific:
- A relationship between Note and User was added
- Notes are associated with the currently authenticated user
- Only the owner of a note can view, edit, or delete it
The project assumes an existing authentication system as per the task instruction.
In the local setup, no authentication is configured, therefore $this->getUser() returns null.
As a result, existing and newly created notes may have a null user locally.
In a real environment with authentication enabled, notes would be automatically associated with the logged-in user.
- Nothing significant; the requirements were clear and straightforward
- Use Symfony Voters for authorization
- Add validation constraints
- Add pagination for large datasets
- Add automated tests
- Improve UI/UX
- Clone the repository
- Run
composer install - Configure database connection in
.env.local - Create database: php bin/console doctrine:database:create
- Run migrations: php bin/console doctrine:migrations:migrate
- Start the server: php bin/console server:run