Link to presentation with demonstration (DEMO)
Link to dyploma-work (Second
part of developing)
Link to course-work (First
part of developing)
This website is written on Node.js/Express/MongoDB/Bootstrap/Vercel/Google Auth/SendinBlue and more.
On this website, you can sign in/up with email or googleAuth, and reset your forgotten password. Users can add their own resume with information, cv, technologies, photos, expected salary, and more. Everyone can see all candidates, how they studied, where, and what to be in this position. Other people or companies can add good candidates to their favorite page and communicate with the owner by email(SendinBlue). And on the website are a history page of communication, a page of our own products, and pages with filtres by technologies. Also, all products have sharing page on social media this resume will be useful for applying to offers and the candidate won't send a cv in pdf-will send a complete cv with studying steps and pet projects. On this website are more features, and about these, you can see below:
Simple registration
- Initialization (express, nodemon, connect to Mongo)
- Simple routes
- Some Html CSS things
- Register with a mongoose connection
- Add Schema, update Html register and home page
- Login page, update routing from pages
- Remove /.. .html from routes
- Login logics
- From Html to EJS
- Check correct input name(>3) and password(>6)
- Add bootstrap Html and update home/login/register page
Work with DB and logic
- Create a model for the new product and add routes
- Renaming
- Show all products when adding new
- Add style for all products and in home page link to my social media
- Add an alert when we have a problem on the client side
- Add btn to open product and style to this; price for the product
- When URL is incorrect and works with the input price, the name has been shorter than 45 letters
- Add max-width to the image on all pages; edit products
- Add to favourite; output id products in the favourite
- Show and attribute products in the favourite
- Delete products from the favourite (resolve bugs)
- Delete products from all list
- Add msg when edit/delete/add product; update method - edit product
- When adding a new product or adding to a favourite remember a user
- Some updates to the favourite
Session
- Add session, hide pages for non-auth users and show for auth
- Save the session, delete our temporary user
- Session in DB, hiding buttons 'edit' 'add to favourite' for non-authenticated user
- Secure routes mean when a non-auth user tries to go on routes like favourite
- Add middleware for the user, and logout routes move to the main routes
- When the user is logged in, save the session
Work with email
- Object configuration(create a file with constants)
- Setting email service when a user does a registration(sendgrid=>have to register in SendGrid, verify email, answer the questions for what you want to use SendGrid, create API key, verify sending-email, connect for node)
- Update mail, when the user does register on this site
- Password recovery(on login page add button - forgot a password); add btn, check email in DB, generate a random key, send message to email for reset password
- Add a page for a new password(add a route, when we have to reset the password)
- Changing password(check user, token, hash new password)
Updating website
- When a user adds a product, another user doesn't allow edit btn; secure delete
- Error 404(when user input non-existing route)
- Create profile page(routes, beauty, page)
- Post to profile page, upload/change avatar photo
- For the add-page, upload a photo
- For edit-product, upload a new photo
- Read product, settings image
- Other favourites of each user
- Add new branch
- Some updating on the favourite page
- Preparing to btn 'contact with this candidate'
- Add logic to communications with a candidate
- Add new branch
- Add a history table of the communication page
- Delete from history; and some styles for a table of communication
Solving some bugs and adding new opportunities
- Non-owner of the product cannot edit this product; show msg
- When the user changes/deletes a product/profile photo - delete an old img from DB
- Checking, that the user can't add to favourite page own product/ doesn't allow adding product twice
- Solving problems in a model by adding and removing product
- Add to favourites(add id product), solving a problem with img when deleting the product
- Delete from favourites, show favourites
- Fix problem with add product or create a new user without img, replace empty image URL-path to path from folder
- Add a bigger input form to the description, and style of this
- Add auth0, user can login and signup with google
- When users use to sign up by google - fixing the problem with double-click to btn sign up
- Adding basic logic to sorting by categories
- Complete logic to sorting by categories
- Add a page for my products, and allow, that non auth user able to read a product
- When owner delete product, delete id from all user's favourites
- Moving duplicate html code to a separate folder
- Moving duplicate routes read product to a separate middleware
- Add dotenv to hide keys and deploy project but still not work
- Push key to .env
- Connect to sendinblue, fixing send email
- Fixing deploying, and hiding the type of error in the login page for more security
- All products-page show a mark on user's own products
- Add date to product
- Compare changes from update2 branch to main
- When the user registers his account by google auth - generate a random password
- Add sharing button for all products to social media
- Add copy link button to each products
Frontend fixing
- Simple bootstrap style to allproduct page
- Add all styles and actions to Allprod Page
- Styles to Single Product Page
- Styles for all categories
- Styles for myProducts Page
- Add file, that to generate views for different devices
- Fix Add new Page
- History page
- Favourite page
- Update 'my product' mark and edit product page(without headers, and correct select category)
- 404 page
- Profile
- Login page
- Sign up
- Reset password
- Main page
- Reset password
- To all pages hide cosmos, add background
- Add more possibilities to the description of products
- Change styles and colors to pages
Upgrade due plans.txt
- Editpage add top navbar and style for select
- Style for letters
- Active product or not