Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A demo of a simple jobs board web application built with Vue 3, Vite, Tailwind CSS, and Pinia.

Yizack/jobs-board-demo

Repository files navigation

Jobs Board

Jobs Board

A simple jobs board web application built with Vue 3, Vite, Tailwind CSS, and Pinia.

Quick Setup

  1. Clone the Repository
git clone https://github.com/Yizack/jobs-board-demo.git
  1. Install Dependencies
cd jobs-board-demo
pnpm i
  1. Run the Development Server
npm run dev
  1. Build for Production
npm run build

Approach

  • Component-Based Architecture: All reusable UI components in the ~/components/ directory. Including the following examples:

  • Views: Page views are stored in the ~/views/ directory. Including the following examples:

  • State Management: The logic is stored in the ~/stores/ directory.

    • jobs.ts managing the state related to job listings, filters and pagination and error.ts managing the error navigation state.
  • Middlewares: Middleware functions are defined in the ~/middlewares/ directory.

    • jobs.ts middleware is used on before each route resolve to fetch job listings from the API, store them in the state, and in session storage to prevent unnecessary API calls.
  • Routing: The routing configuration is stored in the ~/router/ directory.

    • index.ts defining the main routes.
    • jobs.ts defining routes related to job pages.
  • Layouts: The layout components are stored in the ~/layouts/ directory, and are dynamically applied to routes with the layout route meta field.

  • Utils: Utility functions, helpers and composables are stored in the ~/utils/ directory.

  • Styling: The project uses Tailwind CSS for styling. The global styles are in the ~/assets/ directory.

  • Type Safety: Custom type definitions are in the ~/types/ directory.

Specifications

The project was developed with the following specifications.

Environment

The project was developed using the following environment.

Software Version
Node 22
PNPM 10.4.1

Packages

List of key packages used in the project.

Package Description
Typescript JavaScript superset for type safety
Vue 3 JavaScript framework for building user interfaces
Vue Router 4 Official router for Vue.js
Vite Next generation frontend tooling
Vitest Vue testing library
Pinia Store for Vue 3
Tailwind CSS 4 Utility-first CSS framework
VueUse Collection of essential Vue Composition API utilities
ofetch Better fetch API

CI/CD

The project is automatically tested by running ESLint, Vitest, and vue-tsc for typechecking on GitHub Actions on every push to the main branch.

Deployments

The project is automatically deployed on Cloudflare Pages and Vercel.

Deployment URL
Cloudflare Pages https://jobs-board-demo.pages.dev
Vercel https://jobs-board-demo.vercel.app

Development

# Install dependencies
pnpm i

# Develop with Vite
npm run dev

# Run ESLint
npm run lint

# Run Vitest
npm run test
npm run test:watch

# Run typecheck
npm run test:types

About

A demo of a simple jobs board web application built with Vue 3, Vite, Tailwind CSS, and Pinia.

Resources

Stars

Watchers

Forks