Giter Site home page Giter Site logo

elevate's People

Contributors

areacodelogic avatar cowabungapeppercorn avatar elie avatar emitamago avatar fayceltouili avatar hekmatkudrat avatar jonathanclin avatar kimberly-johnson avatar macglass avatar misscoded avatar mrgjune avatar mvatanya avatar nalipp avatar stephaniesimms avatar teddyamkie avatar winniegotyu avatar xchristianzx avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

elevate's Issues

generalQuestion box

a question box in the lower right hand corner of the app
allows user to ask a general question without authentication
questions should default to open status and then be able to be marked as resolved from the admin panel.

authentication

map out steps needed to execute jwt implementation
update readme

stripe

implement express react stripe boiler plate in a mirror project first

css styling

Improve css styling
  Admin panel
  Landing page
  User profile

Get Travis CI working on frontend

Works great for backend, the issue is that Linux is case sensitive for filenames so we'll have to figure out a way in the .travis.yml file to handle this

Architecture refactor

  • move elevate into two repos (elevate-frontend) and (elevate-backend)
  • clean up folder structure for front-end
  • make sure travis-ci is set up for each repo
  • deploy frontend to netlify

Appointments (backend)

Data model for the appointments table
For now appointments can be one to one between two users

Some general ideas on the data model model :

start time/date
end time/date

did the appointment actually take place / no-show (boolean value)

description / needs (provided by customer)
description / notes (provide by admin)

standardize forgot password forms

Use the same styling used in all authentication forms.

  Signup
  Login
  Forgot Password
  Choose a new password

Additional styling can be applied to

  Salary info
  Basic info

twilio api

explore twilio api with mirror project

Allow admin to mark question as answered

In addition to delete functionality.
The questions table should have a column for the completion status of the question.
This will allow the admin to sort by completion status.
see issue : Admin Questions sort by completed status #80

error handling

review the error handling currently in place
find areas where we need to improve the user experience related to errors

React form user experience validations

Form requires
min characters 6
at least one non alpha character (symbol or number)

Feedback should be given to the user when they try submit the form if they do not meet the requirements.
If user doesn't meet the requirements, form submission will be blocked and feedback message will be given below the input field.

The message will persist until the input is valid but won't appear until submit attempt.

Fix data model

submitting PR for revised data model. the rest follows from there.

Fixes for tomorrow:

  1. We need a user model. There is NO PROGRESS without a user model
    a. write the model
    b. write the routes
    c. write the tests

This is a single PR and should be merged before fixing any other things. This is a full workflow and encompasses model, routes, and tests.

  1. Fixing the Salaries/Charges
  • Fixing the create newSalary/newCharge logic: we need a user model for this. The hierarchy of the data model requires the presence of a user to create a salary/charge, since those are referencing the userId. In order to create a new salary/charge, you first have to create a new user (using the user model) and then create a corresponding salary/charge record using the userId of the user you just created.

Fixing the Salaries and the Charges workflows should each be their own PR. Once we have the working user model we can divvy up the two flows.

Charges (backend)

refactor charges model, routes, tests
to account for Stripe integration and corresponding workflows

readme

libraries / technologies used
software decisions
how to clone and run the software
overview of the frontend portion of the project

Form validations / sanitization for authentication form

Each form input item should be validated
email: should be a valid email
password: should be of certain length, hold certain character types (to be discussed)

We also need to prevent sql injections with sort of form sanitization

We should also prevent extremely long data inputs hitting the server

eventHandler for logout and profile dropdown needs to be set on parent

Validations
  should not be able to submit empty form
  should be an actaul email
  email and password are required
  password should 6 characters
  the same messaging pattern for updating basic info should be followed / reused for authenticating a user

  personal profile
    hire date should not be required when editing basic user profile

test coverage (frontend)

Right now there is a bug 
  'TypeError: Cannot read property 'cwd' of undefined'
  try to figure out the bug

Then improve test coverage on the backend

User dropdown visual toggle

after authentication clicking user icon shows dropdown with profile and logout
clicking on the icon again toggles the dropdown to be hidden
however clicking anywhere else on the app does not (but should) toggle the dropdown to hidden

Remove sidebar from admin panel

A sidebar for the admin panel and responsive design has been started but not fleshed out.

Instead of continuing I think it is reasonable to assume that admin will be using a large screen to preform admin duties.

  • remove breakpoints and responsive design for admin panel on mobile screens

  • remove sidebar component and css associated with admin panel phone screen view

node mailer

password reset
Alex should be notified via email when a question (for lawyer) and generalQuestion is posted on the site

Add react router to admin panel

Right no after clicking on Users or Questions in the admin panel and then selecting a line item if you navigate back you go to the homepage.

Should stay in the admin component

Password reset / Node Mailer

Users should be able to reset their password via email link

npm nodemailer
  https://www.npmjs.com/package/nodemailer
  https://nodemailer.com/about/

Flaky tests on master @git-sha: 3dd0806

Expected:

  1. setting up test DB using psql < data.sql
  2. running npm test
  3. All test should pass

Actual:

  1. setting up test DB using psql < data.sql
  2. running npm test the first time: fails
  3. running npm test a second time: succeeds
  4. every additional run of npm test passes

Error message:

● POST /users › Creates a new user

    error: duplicate key value violates unique constraint "users_pkey"

      at Connection.Object.<anonymous>.Connection.parseE (node_modules/pg/lib/connection.js:604:11)
      at Connection.Object.<anonymous>.Connection.parseMessage (node_modules/pg/lib/connection.js:401:19)
      at Socket.<anonymous> (node_modules/pg/lib/connection.js:121:22)

  ● Prevents creating a user with duplicate email

    error: duplicate key value violates unique constraint "users_pkey"

      at Connection.Object.<anonymous>.Connection.parseE (node_modules/pg/lib/connection.js:604:11)
      at Connection.Object.<anonymous>.Connection.parseMessage (node_modules/pg/lib/connection.js:401:19)
      at Socket.<anonymous> (node_modules/pg/lib/connection.js:121:22)

  ● GET /users › Gets a list of 1 user

    error: duplicate key value violates unique constraint "users_pkey"

      at Connection.Object.<anonymous>.Connection.parseE (node_modules/pg/lib/connection.js:604:11)
      at Connection.Object.<anonymous>.Connection.parseMessage (node_modules/pg/lib/connection.js:401:19)
      at Socket.<anonymous> (node_modules/pg/lib/connection.js:121:22)

  ● GET /users › Gets a list of 1 user

    expect(received).toHaveLength(expected)

    Expected length: 6
    Received length: 1
    Received array:  [{"current_company": null, "email": "[email protected]", "first_name": null, "goals": null, "hire_date": null, "id": 4, "is_admin": false, "last_name": null, "needs": null}]

      67 |       .send({ _token: `${TEST_DATA.userToken}` });
      68 |
    > 69 |     expect(response.body.users).toHaveLength(6);
         |                                 ^
      70 |     expect(response.body.users[0]).toHaveProperty('email');
      71 |     expect(response.body.users[0]).not.toHaveProperty('password');
      72 |   });

      at Object.toHaveLength (__tests__/integration/users.test.js:69:33)

  ● GET /users › Gets a list of 1 user

    error: duplicate key value violates unique constraint "users_pkey"

      at Connection.Object.<anonymous>.Connection.parseE (node_modules/pg/lib/connection.js:604:11)
      at Connection.Object.<anonymous>.Connection.parseMessage (node_modules/pg/lib/connection.js:401:19)
      at Socket.<anonymous> (node_modules/pg/lib/connection.js:121:22)

Oauth

Add Oauth functionality
  start with
    Google 
    Facebook

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.