Build a text editor that runs in the browser. This app is a single-page application that meets the PWA criteria and consists of the server-side and the client-side.
- Use node.js as a platform
- Use express.js for the server operation
- Use Webpack and html-webpack-plugin to bundle assets
- Use webpack-pwa-manifest to generate manifest.json file
- Use workbox-webpack-plugin to generate a service worker file
- Use IndexedDB to save and retrieve the content of the text editor
- Use idb.js for a wrapper of the IndexedDB API
On the command prompt :
- npm install
- npm run start
-
WHEN I run
npm run start
from the root directoryTHEN I find that my application should start up the backend and serve the client
-
WHEN I run the text editor application from my terminal
THEN I find that my JavaScript files have been bundled using webpack
-
WHEN I run my webpack plugins
THEN I find that I have a generated HTML file, service worker, and a manifest file
-
WHEN I use next-gen JavaScript in my application
THEN I find that the text editor still functions in the browser without errors
-
WHEN I open the text editor
THEN I find that IndexedDB has immediately created a database storage
-
WHEN I enter content and subsequently click off of the DOM window
THEN I find that the content in the text editor has been saved with IndexedDB
-
WHEN I reopen the text editor after closing it
THEN I find that the content in the text editor has been retrieved from our IndexedDB
-
WHEN I click on the Install button
THEN I download my web application as an icon on my desktop
-
WHEN I load my web application
THEN I should have a registered service worker using workbox
-
WHEN I register a service worker
THEN I should have my static assets pre cached upon loading along with subsequent pages and static assets
Deployed URL:
https://texteditor-pwa-wonjong.herokuapp.com/
Copyright (c) 2022 wonjong2
(GitHub Username) Licensed under the MIT License.
All your inputs are valuable and I love them.
- Reporting a bug
- Submiiting a fix
- Proposing new features
N/A
- GitHub: https://github.com/wonjong2
- If you have any questions, please reach out to wonjong2@gmail.com