Maybe a Twitter clone.
- Create an Angular project. (Later vue.js, same process)
- Create a server and a config folder
- Create the index.js for config
- Create server.js
- Install node packages
- express
- mongoose
- cors
- body-parser
- bcrypt
- joi
- Create the basics components on Angular
- home
- page-not-found
- api
- Manage the routes on Angular
- Make a reference of dist folder on server
- Create a connection of mongodb with mongoose
- User routes
- Create User
- Create POST signup
- Validate fields
- Create validation middleware
- Check if email is unique
- Hash the password
- Insert into DB
- Remove the password from the response body
- Validate fields
- Create POST signup
- Get Users
- Get all users
- Find all the users
- Check if the state propertie is true
- Get specific user
- Find an specefic user
- Check if the state propertie is true
- Get all users
- Edit User
- Validate fields
- Create validation middleware
- Check that the original content is not equal to the modified
- Find an specefic user
- Check if the state propertie is true
- Update the DB
- Validate fields
- Delete User
- Find an specefic user
- Check if the state propertie is true
- Update the DB
- Angular routes (Vue.js)
- Landing page
- Signup page
- Form for signup
- Email, username and password fields
- Get the values of the fields
- Form submitted
- Verify email
- Verify username
- Verify password
- Display validation errors
- POST request to the server
- Display server errors
- Succesful signup, redirect to login page
- Display gif animation
- Login
- Validate fields
- Search the user through the username
- Compare the password with the hashed password
- Display server error or success
- jwt
- Sign the jwt
- Create the payload
- Store on config file the private key
- Option
expiresIn
of 1 day
- Sign the jwt
- Heroku repository
- Error handler function
- Best way to manage routes, or this method is good??
- env variables
- Styles SCSS (I will try to not use bootstrap)... Ok, maybe just for the columns