Coder Social home page Coder Social logo

armitage35 / day2day Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 1.0 17.9 MB

Day2Day is the next home page for people who are looking for a relaxing yet productive environment to start their day.

Home Page: http://day2dayapp.net

License: MIT License

JavaScript 34.67% HTML 43.19% CSS 22.13%
bootstrap css html jquery js learning todolist

day2day's People

Contributors

armitage35 avatar dependabot[bot] avatar imgbotapp avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

lgtm-migrator

day2day's Issues

Support break line in comments

Current behavior
Tasks currently support break line in textual comments but they will not get displayed in the comment section.

Expected behavior
If the users want to use break line in comments, the app needs to display those.

Enable task title edit

Current behavior
Right now it is not possible to edit the name of a task

Expected behavior

  • Display the task's name in the comment modal
  • Add a tool to change the name of the task from this part of the site
  • Save the edits made to the task's name

Handle persistant sessions in the backend

Current behavior
Users can sign up and in and then they get their userID in a cookie and we roll from there.

Expected behavior
Let's finish things cleanly and use passport's cookies to save user id in a hashed way and save those in the db. Really, the gain is that we won't be giving the user his user id

  • Generate a hashed id in a cookie comprised of the user's id that will then be used by the app
  • Rather than handling redirections from the client (if the user is not logged in), do that from the back end (since jquery waits for the DOM to be ready this is not as clean as it could be)
  • Save sessions in the DB

YouTube help

Enable task comment

Add a button that will display a drawer where the user can add one (1) comment to a task

Redesign

Redesign the app to follow the following wireframe
todoapp - wireframe

Save tasks as JS objects

Current behavior
Tasks are only DOM objects.
No date can be assigned to a task

Expected behavior

  1. Tasks should be JS objects
  2. Task list should display those objects

App coldstate

IF userTask.lenght === 0 THEN display a button to add a demo and trigger the onboarding

Upgrade to express 4

Rather than running on express 3.21, upgrade to 4. Read O'Reilly to know what changes

Integration with Giphy!

Now that we have comments, enable users to add Giphy reactions! A.K.A implement Giphy API

Enable filtering by due date

  • Find today
  • Refactor dates throughout the app
  • Remember what view the user selected
  • Go trough all tasks when displayed
  • Group tasks by date
  • Only display tasks that match the selected condition
  • update CSS of selector

Careful: some tasks have no due date!

Mongo must support task edition

Current behavior
MongoDB saves newly created tasks but does not care about task edition.

Expected behavior
Mongo must update tasks when

  • a task is completed
  • a comment is added to a task (gif or text)

Method

  • Upon task creation add the mongo id to the task.

Something needs to link the UI and Mongo so that we know what mongo object we're looking at
When an object is updated both the Task and the User Task need to be updated

fixed it by adding mongo's id to the object and I get to it by using the client's ID

Enable user sign in

Current behavior
Since Issue #42 a user can now sign up to Day2Day and create tasks that will be linked to his account. That is cool but so far he's still not able to access tasks from another computer.

Expected behavior
Using passport (http://www.passportjs.org/docs/), enable a user to sign up with his email / password

  • Create a sign in page
  • Send the sign in info to the server
  • On the server, compare received information to DB info
  • Display login error messages
  • Give access to Day2Day and update the cookie (in case the computer is used by one or more person)
  • Display user's tasks.

day2day sign in

Implement tasks within the new main screen

Current behavior
Issue #48 created the new UI. It's now time to make it work.

Expected behavior
Handle the following features

  • Display the user's specific tasks
  • Enable user to complete tasks
  • Enable user to add task (until issue #51 arrives, just go for a modal)

DO NOT BUILD

  • Any of the commenting features.

Screenshot
main screen

Redesign the app

Current behavior
We now have an app that handles users, tasks and comments. It looks aweful. It's time to get back on the front end saddle.

Expected behavior
Design what Day2Day will do and write in full letters how it'll be better than momentum. Write down all the requirements the app will need to reach the beta status.


Requirements in order
As a user i want to

  1. See nice pictures
  2. See date, time and weather
  3. Handle to do
  4. Handle notes
  5. Handle pocket read list
  6. Handle agenda

Design research
GDrive link

Deploy app

Current behavior
Right now the app can only run the client side on GitHub but the server and DB can't.

Expected behavior
In order for user to be able to use the app decently, we need to run the app on cloudfoundy or AWS so that user's tasks can be saved.

  • Deploy app
  • Enable access trough SSH in C9
  • Document deployment on digital ocean

Deploy on AWS: https://youtu.be/qZa5JXmsWZs

Refactor the code

Some parts of the code are ugly to look at. Refactor

  • cookie handling
  • task counter
  • what real use for the class creator since i create but one array ?
  • make a choice between simple and double quotes

Giphy bug: clean memory once added or reloaded

Current behavior
When looking for a gif and adding it to the task (or not adding it), the gif stays in memory and adds it to the task whereas it should actually be empty.

Expected behavior
Whenever the giphy is added or changed or whatever, REMOVE it from memory

Enable auto sign in

Current behavior
Tasks are not fetched form mongo

Expected behavior

  • Make a mongoose Scheme to save user info
  • Assign an ID to each visitor
  • Save this ID in a cookie
  • Copy the ID in mongo
  • If visitor already has an ID, don't create a new one
  • Specify visitor ID in every task they create
  • Fetch tasks accordingly to this visitor ID
  • fill up user tasks with content of response
  • Disable user task cookie (comment it)

day2day auto login

Build the base of the new main screen

Current behavior
Our current UI, while decent is not going to cut it for what we want this app to do.

Expected behavior
Build the foundation of Day2Day's beta. This screen will include

  • A section to display a name and an email
  • Some space for a gravatar
  • The tool bar in the extreme right hand side corner (upgrade to FA 5)
  • A place for date & time
  • A place for weather
  • An empty section where we'll later display tasks.
  • A main picture taken from Unsplash (random on nature) with the name of the photograph
  • Bring the modals too
  • Bring the js function that handle UI stuff (toggles...)

DO NOT BUILD

  • The task section itself
  • Logics for date & time
  • Logics for weather
  • The logics to pull the gravatar

Screenshot
main screen

Task coloring

When you remove a task, the coloring will not budge

Solution 1) count the amount of task, divide by two and count again
Solution 2) review UI

Save todos in a JSON file on the server

Current behavior
Todos are only saved in the browser's cookies and that is cool but it's not the best thing to go towards a DB

Expected behavior
In order to move toward user handeling, the app needs to save todos in a JSON file in the server.

Fix api's response status

Current behavior
All request are answered with a 200 status code (provided that they worked)

Expected behavior
The API should send not only a response but also use the correct status code.

dev hint
Use the method res.status before the res.send

Enable user sign up

Current behavior
Since Issue #41 we now know if a user has already used this browser to access Day2Day. We now need to enable him to access his / her task on any device and browser he / she wants to use.

Expected behavior

  • Verify if the user's already logged in
  • Make a sign up page (reuse from https://codepen.io/alexdevero/pen/vNRqLL)
  • If not display the sign up page
  • Send the form info to the server
  • On the server check that the information submitted are OK (required fields + format)
  • Save those infos in mongo
  • Redirect user to Day2Day app page
  • Grant access to the user and set his cookie to his user id
  • If the info are not valid, send a warning to the client (req.flash??)
  • Display potential registration errors in the UI
  • Check that this email is not already taken by another user
  • If user has cookie and accesses /auth.html send him over to tasks
  • Make sign up page responsive using bootstrap
  • Add a cool registration successful animation
  • nice to have: hash the password so as not to save it in clear text (https://www.abeautifulsite.net/hashing-passwords-with-nodejs-and-bcrypt)

day2day sign up

The client needs to pull todos from Mongo

Current behavior
Mongo is only used to copy tasks but is never called to load tasks

Expected behavior
Each user must have an id that we save in a cookie.
The user must enter his email. If the email exists in Mongo, pull his data, otherwise, generate a new ID
The user ID needs to be random and associated to the tasks he's going to create

Handle users

Current behavior
Tasks are saved but nothing states what user they should be assigned to.

Expected behavior
A user should only act upon tasks he himself created. To do so we will need

  • Create a diagram to explain what needs to happen

Handle due date

  • Add a calendar widget in the input modal (add a calendar icon that expands into a complete calendar)
  • Send the added date to the object
  • Display this value within the UI
  • Handle look & feel

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.