Skip to content

Latest commit

 

History

History
109 lines (66 loc) · 5.71 KB

File metadata and controls

109 lines (66 loc) · 5.71 KB

Review Assignment Due Date

Full Stack JavaScript Assessment

Introduction

For your assessment, you are to create a full-stack web application of your choosing. You could build:

  1. Search Engine
  2. Chat Application
  3. Sentiment Analysis
  4. 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.

Learning Outcomes

By the end of this assessment, you will have demonstrated your ability to:

  1. 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.
  2. Implement Best Practices: Showcase your proficiency in following coding standards and structuring a project optimally.
  3. Utilise Full-Stack Development: Master using React for your frontend, Node.js for your backend logic, and MongoDB for your data needs.
  4. Implement CI/CD: Get hands-on with setting up and managing a CI/CD pipeline, leveraging tools like GitHub Actions.
  5. Deploy Applications: Understand the process to get your applications up and running on platforms suitable for full-stack apps.
  6. 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.

Requirements

  • Frontend: Utilise React for creating user interfaces
  • Backend: Build an API using Node.js and Express.js
  • Database: Utilise MongoDB for data storage

What we expect you to accomplish

  • 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.

Getting started

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.

Things to consider whilst building your application

Design

  • 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.

Code Quality & Structure

  • 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.

Deployment

For more tips refer to the Deployment Guide.

Feedback

  • 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.

Deliverables / What You Should Submit

  1. The link to your GitHub repository

  2. A deployed version of your application

  3. Comprehensive documentation detailing your thought process, design choices, and more


Good luck with your assessment! You've got this 💪