A recipe-sharing website where users can create an account to upload recipes or search for recipes posted by other users. I made this project to learn how to use Spring Boot for web applications.
Website URL: https://therecipebowl.netlify.app/
- Frontend: React, Bootstrap
- Backend: Java / Spring Boot
- Database: MySQL
- Deployment: Netlify (frontend) and Heroku (backend)
- Account creation
- Email verification using "Spring Boot Starter Mail" dependency
- BCrypt password encoding to save passwords to the database
- Profile editing
- Forgot password / password reset
- Authentication with JWTs
- Form validation with Formik and Yup
- Registration
- Check if entered username is taken
- Username cannot contain spaces or special characters
- Check if email is valid
- Check if email is already being used with another account
- No fields can be empty
- Password at least 6 characters long
- Log in
- Check if correct username and password
- Check if account is activated
- Account Settings
- Check if new username is taken
- Username cannot contain spaces or special characters
- Username cannot be empty
- Check if email is already associated with another account
- Posting/Editing Recipes
- No field can be empty
- At least one ingredient, one direction, and one tag
- Registration
- Image uploads with Cloudinary
- Uploading and editing recipes
- Search page
- Rate and review recipes
- Admin privileges
- Delete recipes, accounts, reviews
- Edit roles of accounts