Skip to content

Interview-Study-Aid/technical-interview-study-aid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Technical Interview Study Aid

GitHub GitHub package.json version GitHub Issues

Version: 1.0.0

Overview

Technical interviews are an important -- and unavoidable! -- part of the process of entering the tech field. This full-stack application makes the preparation process as painless as possible for developers by providing a wealth of resources, all in one place. Users can choose from a variety of questions from popular tech and programming topics, view the answers on command, and log in to save their notes on a problem for future reference as they study.

Built with a React front end and Node/Express backend REST API, powered by DynamoDB.

Authors:

Development

User Stories

1. Landing Page

As a user, I want to be able to see all available categories so that I can understand what information is available.

  • Feature Tasks

    • Landing page should display all available categories
    • Each category should be clickable
    • No specific questions will be visible on landing page
  • Acceptance Tests

    • Login should be available but not required to view categories
    • Multiple categories should be displayed on the navigation bar
    • No questions should be visible until a category has been selected

2. Category View

As a user, I want to be able to see all questions associated with the selected category so that I can choose a specific question to study in more depth.

  • Feature Tasks

    • User can choose a category from a persistent navigation menu
    • Show only those questions associated with chosen category
    • Categories for both languages and topics available
  • Acceptance Tests

    • The categories displayed on the nav bar should persist when a category is selected
    • The selected category should be visually indicated
    • Questions associated with the selected category should render in the body of the page
    • No answers/solutions/resources should be visible when a category is initially selected

3. Answers

As a user, I want to be able to view answers or resources related to the question that I'm viewing so that I can check my answers and/or gain a deeper understanding of the topic.

  • Feature Tasks

    • Answers/solutions should be available for each question in the database
    • Answers/solutions should not be visible by default
    • Show answers/solutions for all visible questions
  • Acceptance Tests

    • Ensure that answers and solutions to questions/challenges are not immediately visible
    • Ensure that answers are only shown when requested by the user
    • Ensure that each question has an associated answer in its record

4. User Interface

As a user, I want a clean, intuitive, and well-structured User Interface so that I can easily - navigate between site features while studying.

  • Feature Tasks

    • Users can navigate between pages without reloading
    • Dynamic views render any updates to chosen category
    • Navigation bar and category select will be visible/available from all pages
    • Each question should be displayed on a well-defined card
    • Each question should have a detailed view with further information
    • Each question detail view should have an option to show the answer/solution
    • Show clearly-defined loading indicators when users are waiting for data
  • Acceptance Tests

    • Ensure that there is a clear distinction between the "question only" view and the "question details" view to allow users to test their recall abilities when desired
    • Provide a clean and unified theme for the site for an appealing aesthetic
    • Ensure that users can navigate between views without a full-page reload
    • Provide loading indicator if users are waiting for a view to render
    • Provide a clear error message if system or view is unavailable

5. Authorization

As a user, I want to be able to log in to a persistent and secure profile so that I can have a - customized and personalized experience.

  • Feature Tasks

    • Users can sign up with a username and password
    • Password will be encrypted and secure
    • Users can log back in and retrieve their personal data
  • Acceptance Tests

    • Ensure that encrypted sample users can be retrieved from a mock database
    • Ensure that users can only access their own information and notes and not those of any other user
    • Ensure that users cannot alter site data or content
    • Ensure that passwords are not accessible
    • Ensure that users can access notes field and any saved notes when logged in

6. Notes

As a logged in user, I want to be able to take notes on specific study questions so that I can build on my understanding of a given topic over time.

  • Feature Tasks

    • Notes will not be visible or accessible to guest users
    • Notes will be accessible to users that are authorized (logged in)
    • Detail view of a specific question will include access to a 'Notes' section
    • Notes will be editable, savable, and persistent from session to session.
    • Users can only view their personal notes (not shared with the community/other users)
  • Acceptance Tests

    • Guest users should not be aware of 'Notes' as a field (ie no 'gap' in site)
    • Logged in users should be able to view an editable field ('Notes') when viewing the detail page of a - specific question
    • Notes should be persistent from session to session
    • Notes should be available only to the user they are associated with (not public)

Domain Model

Project UML

Wireframes

Project Wireframe 1 Project Wireframe 2 Project Wireframe 3

Entity Relationship Diagram

Project ERD

PM Tools

  • GitHub will server as a central repository for all working code and completed steps

  • Trello will act as the team project management hub to maintain organization of daily tasks, measure progress toward MVP, and document individual work loads

  • Project Board via Trello

About

A full-stack application helping developers study and practice for technical interviews.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published