rithmschool / elevate Goto Github PK
View Code? Open in Web Editor NEWHuman resources for the employee.
Human resources for the employee.
refactor charges model, routes, tests
to account for Stripe integration and corresponding workflows
front end tasks TBD related to #8
Anyone can sandbox the following library before implementation otherwise this will wait until base admin panel has been implemented.
To start with some basic validations on username and password
implement express react stripe boiler plate in a mirror project first
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
Should only be using one css library.
Keep : reactstrap
Remove : react-bootstrap
Seems to happen 20% of the time.
Might be related to token authentication.
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
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.
there is a reusable spinner component in src
When the user submits the login or signup form a spinner should appear while they are being authenticated.
create seed data with existing data model in data.sql
connect basic endpoints to react admin panel
password reset
Alex should be notified via email when a question (for lawyer) and generalQuestion is posted on the site
Improve test coverage on the backend
Users should be able to reset their password via email link
npm nodemailer
https://www.npmjs.com/package/nodemailer
https://nodemailer.com/about/
Improve css styling
Admin panel
Landing page
User profile
Somehow we missed a try catch in our frontend tests that is causing this warning.
search by username or email in the userlist view
dropdown should appear, or user list should update on each keystroke
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
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
The admin should be able to sort by the completion status of the question so that completed questions appear at the bottom of the table.
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.
map out steps needed to execute jwt implementation
update readme
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
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
psql < data.sql
npm test
psql < data.sql
npm test
the first time: failsnpm test
a second time: succeedsnpm test
passes● 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)
This will probably be better tackled after the data model on the backend is complete.
We will need some way of scheduling appointments between two users.
Possible library:
https://developer.calendly.com
submitting PR for revised data model. the rest follows from there.
Fixes for tomorrow:
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.
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.
implement basic styling on landing page
https://www.hipcamp.com/
https://www.airbnb.com
https://www.harrys.com/en/us
There are warnings and errors in chrome developer tools that need to be cleaned up.
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
Add Oauth functionality
start with
Google
Facebook
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
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)
review the error handling currently in place
find areas where we need to improve the user experience related to errors
explore twilio api with mirror project
libraries / technologies used
software decisions
how to clone and run the software
overview of the frontend portion of the project
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.