Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
58 changes: 30 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,40 @@
# Flex Business Solutions Tech Test - Notes app
# Getting Started with the task

In Flex Business Solutions, we aim to provide excellence and efficiency on all our lines of code in order to support the day-to-day activities of the company using our software solutions. In this task, you will be provided with a simple design of an app, fetching a list of products from an external source and allowing the user to search or filter among the list.
In the project directory, you can run:

## `npm install`
Installs necessary dependencies for project to run
### `npm start`

### Tech Test Overview
We have provided below the Figma link of this task. On the main page,
Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.

[FIGMA] [https://www.figma.com/file/T6hUVUDh5ihoYwQILcJDcf/React-Home-Test?type=design&node-id=0%3A1&mode=design&t=lOTjaPb3chxGqXkY-1]
## Click Create Category
A modal will pop up which makes possible to name the category we are creating the structure of category will have an id a name and an empty array for notes to be added.Click Add Category for category to be added.

We love to see:
- Functional code
- Good design
- Unit testing
## Add Note
Click Category in which we want to add a new note and on the right at add note section user input is got.
Click Add Note the note will be added to the seleced category.
Note cannot be added if there is no categories.

## Click on the note
It shows the note full text on the right and it is editable or can be deleted.
Click save Changes the note will be edited.
Click Delete Note the note will be deleted.

### Notes
All of you work should take place inside this repository.
## Click Create Note Button
Opens on the right Add Note section and it ads new note to the last clicked Category

You are free to use any packages that would help with this task
## i.
App needs a login and logout using https so each user has its own account where their data is showing after authentication.The state of field validity can be managed thorugh context in this case.
User input validation to protect against SQL injection when working with databases.
Sensitive data should be encrypted in datavases and during transfer.
Avoid revealing system details in error messages.

You do not need to add additional security measures as part of this exercise.
We're interested in how you break down the work and build your solution in a clean, easy-to-use, reusable and testable manner.
## ii.
Instead of contex we will use redux which manages state better supports middleware for better hadling side-effects and it prevets unnecessary re-renders.
If possible the app should be broken in small pieces which can be mantained individually.
Load balancing should be monitored and incoming traffic to be distributed across multiple servers so that one server is not overwhelmed with requests.
Pacakages for data to be processed asynchronously should be added.
Implement backup servers and fail mechanisms to redirect traffic in case of failures.


## Deliverables
You must follow the Figma design and need to add the functionality of:
a) Create new notes
c) Show all notes
b) Search notes

**Create a folder inside the repository and include finished screenshots of the app.**
**Please make sure to update the readme with**:

- How to run your app with all the necessary details
- Relating to the task please add answers to the following questions;
1. How might you make this app more secure?
2. How would you make this solution scale to millions of records?
Loading