- Introduction
- Requirements
- Getting Started
- Things to consider whilst building your application
- Deliverables / What You Should Submit
For your assessment, you are to create a full-stack web application of your choosing. You could build:
- Search Engine
- Chat Application
- Sentiment Analysis
- Product Recommendation Engine
or whatever you'd like.
This assessment offers you the choice to embrace either a monolithic (all in one) or a mono-repo (in separate pieces) architecture for your full-stack application. While the realm of microservices is gaining traction, understanding both monolithic and mono-repo setups provides a well-rounded perspective.
Opting for a monolithic architecture simplifies deployment, eases developmental complexities, and ensures a comprehensive view of the application stack. On the other hand, choosing the mono-repo route gives you a taste of modular organisation, scalable structures, and the ability to deploy parts independently while maintaining a centralised codebase. Whichever path you choose, this project ensures you garner deep insights and hands-on experience.
By default, this codebase has been set up as a mono-repo; to deploy as a monolith, you will need to make a few adjustments. You can find out how to make the changes in this short guide.
By the end of this assessment, you will have demonstrated your ability to:
- Design and Architect Applications: Understand the nuances of designing a user-centric application, from your user's journey to how they interact with your database.
- Implement Best Practices: Showcase your proficiency in following coding standards and structuring a project optimally.
- Utilise Full-Stack Development: Master using React for your frontend, Node.js for your backend logic, and MongoDB for your data needs.
- Implement CI/CD: Get hands-on with setting up and managing a CI/CD pipeline, leveraging tools like GitHub Actions.
- Deploy Applications: Understand the process to get your applications up and running on platforms suitable for full-stack apps.
- Iterative Development & Feedback: Appreciate the value of feedback loops in your software development journey and make iterations based on real user feedback.
By completing this assessment, you're set for a holistic dive into full-stack development using the JavaScript ecosystem and the intricacies of deploying and maintaining web applications.
- Frontend: Utilise React for creating user interfaces
- Backend: Build an API using Node.js and Express.js
- Database: Utilise MongoDB for data storage
- A fully deployed application with the URL to it in this README
- Comprehensive documentation
We have provided you with some ideas to help you achieve these, which you can find here.
We have created this codebase as a skeleton for you to use. You can adapt it to your needs.
To get started with setting up this codebase on your machine follow this guide we have created for you.
-
User Flow: Outline the user journey, considering main actions and navigation
-
UI/UX: Sketch a simple UI using tools like Figma or Adobe XD. Ensure a thoughtful user experience and consider tools like Google Lighthouse for insights on performance and accessibility
For more tips refer to the Design guide.
-
Best Practices: Adhere to coding best practices such as naming conventions, DRY principles, and more
-
Design Patterns: Consider popular patterns, like MVC, to structure your web application
For more tips refer to the Code Quality & Structure guide.
-
Platform: Deploy on a platform like Heroku, Vercel, DigitalOcean App Platform, or AWS Elastic Beanstalk.
-
Domain: If you'd like, purchase a domain name from providers like Namecheap or GoDaddy and link it to your deployed application. If using AWS, you can manage domain names with AWS Route 53.
For more tips refer to the Deployment Guide.
-
User Feedback: Design a system to capture user feedback, whether it's through user interviews, surveys, or another medium
-
Iterative Development: Use feedback to make improvements to your application, refining it based on real user needs
For more tips refer to the Feedback Implementation Guide.
-
The link to your GitHub repository
-
A deployed version of your application
-
Comprehensive documentation detailing your thought process, design choices, and more
Good luck with your assessment! You've got this 💪