Parallel Markets job application code challenge. (see assignment)
This project uses:
React on the Frontend
Next.js for quick, fullstack JS app development
Formidable for handling file uploads in Node
SQLite for local relational db
Knex for working with the DB
Tailwind CSS For quick, functional styling
Install JS deps:
yarn install
Install Knex and run migration to setup sqlite db
yarn global add knex
knex migrate:latest
yarn dev
Open http://localhost:3000 with your browser to see the result.
The Frontend is primarily in pages/index.js
The API is in pages/api
(a Next.js pattern).
- upload.js handles file uploads
- investor.js handles investor submission
There is a lot left to do!
- Use Formik to make the form a lot more user-friendly and easier to maintain in the code
- Form validation (use Yup)
- File upload progress
- Step-wise progress indicator as the FE uploads the file and THEN sends in the investor data
- Error states
- Validation
- Use collision-safe file naming on the uploads
- Upload to a safe area, assume malicious files
- Authentication
- Authorization