This is an example JavaScript web application showcasing both front- and back-end technology tech-stacks.
The application itself is a simple job scheduler that will display the results of any job as a card on a dashboard.
There is only one job type available in the example, which will display the current weather in a any location.
The user is able to schedule and delete jobs as required.
The application is a Monorepo build using NPM with a shared package library, a NodeJS back-end and a Nuxt (Vue) front-end. The entire application is containerised in a Docker container.
- NPM Monorepo
- WebSocket communication.
- Basic JWT authentication.
- TypeScript
- Docker
- Nuxt
- Vue3 composition API
- Tailwind CS
- Express
- Cron-like scheduling for jobs
- Server-side caching
To build the Docker image run docker build -t weather-schedule
from the root directory.
To start the image, run docker run -p 3000:3000 -p 5000:5000 weather-schedule
from the root directory.
The app should now be accessible on http://localhost:3000.
Note: It is unconventional to run two applications in a single Docker container as it goes against the Single Responsibility Principle. For this example, however, I opted to host both BE and FE apps in a single container for ease of use.