Skip to content

Repository files navigation

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Inter, a custom Google Font.

Assumptions made during development:

List of features:

Key Features

  1. File Upload:

    • Drag-and-drop functionality for PDF files.
    • Manual file upload option.
    • Displays file size limit ("Limit 25 MB per file").
    • Files stored locally in the browser's local storage.
  2. Local Storage Implementation:

    • Uploaded files and their metadata are saved locally.
    • Persistent data across page reloads.
    • Efficient retrieval of stored files and metadata.
  3. Coursework Details Form:

    • Dropdowns for selecting "Coursework Type" and "Subject".
    • Text input for the essay title.
    • Form data is stored locally along with the associated file.
  4. Evaluation Display:

    • Dummy data is used for evaluation purposes.
    • Shows overall score with a circular progress indicator.
    • Breakdown of scores by criteria (A, B, C).
    • Evaluation date displayed.
    • Evaluation results are stored and retrieved locally.
  5. Coursework List:

    • Displays previously uploaded coursework from local storage.
    • Shows relevant details such as title, subject, word count, etc.

    Bonus Features

  • Animations: Smooth transitions between different states.

  • Micro-interactions: For enhanced user feedback.

    Advanced Local Storage Features

  • Mock API Integration: Mock API calls for simulating server-side persistence (using Mock API from - https://dummyjson.com/).

Challenges:

The biggest challenge for me was integrating the PDF Viewer library pdfjs, the configuration of the library on NextJS is particularly difficult since the react-pdf library latest version is not compatible with pdfjs latest version. This lead to me trying a lot of combinations until I got it to work.

Other than that I faced minor issues while setting up Zustand.

About

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages