A job posting app that uses MVC Architecture, it comes with account creation, email confirmation and password reset features.
This app allows:
- coffee shop users to post their vacant shift request
- barista users will get notified through email if they opt-in for notification service
- barista users can put themself available for individual shift
- shop owner will then see all available baristas for the shift(s) posted and their contact info
- users can add and edit their personal information at profile page
Link to project: https://baristawanted.cyclic.app/
Tech used: EJS, CSS, JavaScript, Node, Express, MongoDB, TailwindCSS, Google Maps API, Cloudinary
bcrypt, concurrently, cloudinary, connect-mongo, daisyui, date-and-time, dotenv, ejs, express, express-flash, express-session, express-flash, hcaptcha, method-override, mongodb, mongoose, morgan, nodemailer, nodemon, passport, passport-local, tailwindcss, validator
npm install
- Create a
config.env
file in theconfig
folder and add the following askey: value
- PORT = 3000
- DB_STRING =
your MongoDB database URI
- BCRYPT_SALT =
Salt rounds value for password hashing
- MAIL_SERVICE =
gmail
- MAIL_USER =
your GMAIL account
- MAIL_PWD =
your GMAIL APP password
- HCAPTCHA_SECRET =
your hCaptcha secret
- GOOGLE_MAP_API_KEY =
your Google Maps Places API key
- CLOUD_NAME =
your cloudinary cloud name
- CLOUD_API_KEY =
your cloudinary API key
- CLOUD_API_SECRET =
your cloudinary API secret
- DEMO_BARISTA =
Demo account email
- DEMO_CAFE =
Demo account email
- DEMO_PASSWORD =
Demo account password
Mongoose, Date object manipulation, email sending from the server, token generation and verification, TailwindCSS, Cloudinary upload and image cropping
- Could use Google place API to give users the option to define their own display data (in progress)
- Style email content
- Add pagination for shift display area