Congratulation!
You have conquered all the challenges of the course. And now you are only several days away from graduation.
To officially become a CoderSchool Full-stack web graduate, you are required to take on the biggest challenge of all, the Final Project. In this project, you will demonstrate all the skills that you have acquired on your learning journey at CoderSchool.
Please find the project requirements in this document as a guideline for you to build your final project
These are the technical skills that you are required to showcase in this project :
Front end
- Able to use React Redux-toolkit
- Able to use useRef and custom hook
- Able to apply MUI framework with the use of themeProvider
- Able to use React Hook Form
- Able to use React Router v6
- Able to use React Router v6 useOutlet or
Outlet
- Able to use React Router v6 useNavigation or
Navigation
Back end
- Able to use Mongoose and MongoDB
- Able to use express request object. Must include the use of
body
, params
, and query
- Able to apply to Send Response helper
- Able to apply Error Handling
- Able to apply the JWT authentication process
- Able to apply Bcrypt
Development
- All sensitive information such as keys, secret_key, mongo_uri, ... must be hidden from public
- Front-end must be deployed. (For example, Netlify)
- It is ok to not deploy Back-end. However, doing so will be rewarded with extra points. (For example, Heroku for the server and Atlas for the database)
- Front-end and back-end codebase are separated on GitHub.
- Github codebases must have
README.md
that includes at least: Description, Feature (User Story), Link to demo, Link to API, and mock demo account sign-in info.
Missing any of the above technical skills requirements will result in a Fail grade with no exception.
This is the list of features you must cover
Originality Idea
At least 50% of the project idea are original. For examples: If CoderComm has 10 features and you are about to clone that project. You will be required to add 10 more feature of your own that has not been coded in class. Or you could choose to only clone 5 and then build your own other 5.
Extra point for a project idea that is >80% different from :
- E-commerce (bookstore)
- Social Platform (codercomm)
API requirement
- Minimum 2 main entities (For example Post in Codercomm is the main entity, User is also the main entity while Comment, Reaction, Friend are not)
- Minimum 2 sub-entities
- At least 1 set of CRUD for each entity
- User information must not be deleted once entered
- Minimum 1 user role (For example Public vs Login or Admin vs Customer). More roles and features that are related to different roles will be rewarded with extra marks.
- API response must have a reasonable HTTP status code, message, and data or error
- All GET routes that return a list must have pagination, limit, search, and sort options enabled for front end
- While using
express-validator
is not a requirement. You are required to have reasonable protection to all the routes from bad requests.
Front-end requirement
- Responsive for all desktops, iPhone 12, and Ipad Mini
- Use all API routes
- Minimum 3 forms submission
- Minimum 1 theme change feature (eg dark mode)
- Persistent login
- Must have a protected layout for login-only users.
- Image upload
- Must have a User profile page
- Must have at least 4-page routing
- Must have NavBar with logo, Footer, Pagination, Search bar
- Must have at least 2 animations (For example Loading spinner, animated search, or animated button ...)
- Score: You are starting with a 100/100 total score.
- Minimum Passing Score: The final score to pass from this project is 80/100**
- Penalty: For every requirement misses, you will be deducted 5 (-5) from your total score.
- Extra reward: For every extra feature or showcase of excellence in code quality, you will be given a reward in a range of 1 - 10 scores. For example, applying
express-validator
for all routes perfectly will reward 10 extra points.
- Deliverables:
- GitHub for front-end and back-end. Last commit is no later than 23:59:00 22 May 2022.
- Netlify and Github links submit on Learnworld 23:59:00 23 May 2022
- 10-15 mins video presentation about your project then upload to google drive
- Late penalty: -10 per day of late submission.
How to submit :
- Submit in this learnworld link :
- The Github link for Front end
- The Github link for Back end
- The Netlify production link
- The Google Drive link to your presentation video.
The end, Goodluck have fun coding