Coder Social home page Coder Social logo

edwigegc / todo Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 1.5 MB

ToDoList is an application to manage daily tasks. Developped first with Symfony 3.1. My work was to reduce technical debt and install tests with phpunit

PHP 8.80% Twig 1.31% CSS 0.28% HTML 89.48% JavaScript 0.13%
phpunit symfony php mysql-database blackfire-io doctrine-orm

todo's Introduction

ToDo

Codacy Badge

This project was made to validate my training as a web PHP/Symfony developer. The fake company ToDo & Co developed its first application with Symphony framework 3.1 a few years ago and didn’t maintain it. This application allows registered and logged-in users to manage the to-do list of their team.
My job was to improve it.

Getting start

Prerequisites

Installation of To Do List requires:

  • Symfony 4.4
  • PHP version 7.4.12
  • MySQL version 5.7
  • Apache Server 2.4.46
  • Composer 2.0
  • Doctrine/ORM < 2.5
  • Bootstrap 5.0

Dependency used for testing the project:

  • phpunit/phpunit < 9.5

Installation

  1. On your local machine, create a local repository and make a
    git remote add to your GitHub repository
  2. Copy the link on GitHub and clone it on your local repository
    git clone https://github.com/EdwigeGC/ToDo.git
  3. Open your terminal and run: composer install to install dependencies
  4. Open file .env and configure username and password for database connection. Example:
    DATABASE_URL="mysql://db_user:[email protected]:3306/db_name?serverVersion=5.7
  5. Create database:
    php bin/console doctrine:database:create
    doctrine:schema:create
  6. Fill the database with fixtures:
    php bin/console make:migration
    php bin/console doctrine:migration:migrate
    php bin/console doctrine:fixtures:load

Features

Only registered users can access to the application:

  • Get list of all tasks to do
  • Get list of all tasks done
  • Get the details of a task
  • Edit a task
  • Mark a task as done
  • Delete a task (if the user is the author of the task)
  • Authenticate

The admin can also:

  • Create a user
  • Edit a user
  • Manage unassigned tasks

Run the tests: In your terminal, run vendor/bin/phpunit

Credit

photos: @SaroOh

Contribution

If you want to contribute to this project and make it better, your help is very welcome. Look the documentation to see how contribute.

todo's People

Contributors

edwigegc avatar saro0h avatar

Watchers

 avatar

todo's Issues

Create a service to manage password with email

When a user is created, he receive an email to confirm his registration and can choose a password.
When a user forgot his password or need to change it, the admin can send a link on user email box to renew it.

Estimated time: 6h

Enrich tasks options

Add atributes as an ending date, a priority order, theme.
Users can also add attached files or pictures to task.

Estimated time: 4 hours

Paginate

Set up a pagination service for users list and tasks list.
Set up filter to choose a criteria as date, user, priority order

Estimated time: 4h

Tasks must be assigned to a user

When a task is created, it is assigned to the authenticated user and this one can't be changed.
Tasks without user must be linked to an anonymous user.

Document the code

Set up a documentation as phpDocumentor to make the code easier to read.

Estimated time: 2h

Correct last depreciations

The goal is to maintain the code and eventually be able to migrate to the new version of Symfony: 5.2

Estimated time: 4h

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.