This is a Vue 3 project utilizing Nuxt.js, Pinia, and Composition API to simulate a radio device.
- Interactive context buttons for managing dynamic actions.
- Centralized locking mechanism to disable all buttons when the system state is locked.
- Modular design using the Composition API and Pinia for state management.
- Implementation of modals for specific features (e.g., Group Selection Modal).
- Vue 3: The core framework used for building the user interface.
- Nuxt.js: For server-side rendering, better developer experience, and overall structure.
- Pinia: State management to handle application-level states like button locking, modal visibility, etc.
- TypeScript: Strong typing to reduce runtime errors and improve code maintainability.
- Tailwind CSS: Utility-first CSS framework used for styling.
Follow these instructions to get the project up and running on your local machine.
- Node.js (version 16 or higher)
- NPM or Yarn or PNPM (to install dependencies)
-
Clone the repository:
git clone https://github.com/your-username/context-buttons-project.git cd context-buttons-project
-
Install dependencies: Using NPM:
npm install
Or using Yarn:
yarn install
Or using PNPM:
pnpm install
-
Run the development server: Using NPM:
npm run dev
Or using Yarn:
yarn dev
Or using PNPM:
pnpm dev
-
Access the project: Open your browser and go to
http://localhost:3000
to see the application in action.
To create an optimized build for production, run:
npm run build
Or using Yarn:
yarn build
Or using PNPM:
pnpm build
The build artifacts will be stored in the .output
directory, ready to be deployed.
npm run dev
oryarn dev
orpnpm dev
: Starts the development server.npm run build
oryarn build
orpnpm build
: Creates a production build.
- /components: Reusable Vue components like context buttons, modals, etc.
- /composables: Contains reusable logic, like button lock handling.
- /stores: Pinia stores used to manage global application state.
- /pages: Page components managed by Nuxt for routing.
If you wish to contribute:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes and push them to your branch.
- Create a Pull Request and describe your changes in detail.
This project is licensed under the MIT License - see the LICENSE file for details.
- Nuxt.js Documentation: For the latest best practices and tips.
- Vue 3 and Pinia: For providing an excellent modern JavaScript framework and state management.
- Tailwind CSS: For the fast and easy styling of components.