Welcome to our vuejsisrael website project! To ensure a consistent code style and minimize errors, we use Prettier and ESLint. Please follow the instructions below to set up and maintain the development environment.
-
Clone the repository:
git clone https://github.com/vue-js-israel/vue-israel-website-v2.git
-
Make sure to install the dependencies:
# npm npm install
Make sure to use Node.js version > 18.17.1 and npm version > 9.6.7 for a consistent development environment. You can use tools like nvm to manage Node.js versions.
Start the development server on http://localhost:3000
npm run dev
To deploy the project in a production environment, execute the following command:
npm run generate
This project utilizes the npm run generate script for static site generation,this script generates a static version of the project.
The Static Site Generation process in Nuxt 3 involves analyzing the project structure, pre-rendering pages during the build process, and generating static HTML files and assets that can be deployed to the host platform.
As an offline database, the project uses JSON files. To publish a new event on the website, the files, speakers.json, events.json, and talks.json must all be modified under the Content folder. There is a direct link between the three files, and a lack of data in one of them may result in issues. Full contribution guideline
In order to maintain consistency and readability across the Nuxt 3 or Vue 3 SSG project, we adhere to the following code style guidelines:
-
Pages: Organize pages under the
pages
directory. Group related pages in subdirectories when applicable. -
Components: Place reusable components in the
components
directory. Follow a modular structure and consider organizing them in subdirectories. -
Layouts: Store layout components in the
layouts
directory. Maintain a clear naming convention for layout files. -
Assets: Keep static assets (css, icons, etc.) in the
assets
directory. -
Images: Keep static images in the
public/images
directory. (We keep a copy of every image - all images are uploaded and displayed from Cloudinary) -
Styles: Use the
assets/css
directory for global styles and consider component-specific styles in each component directory (The project based on TailwindCSS).
-
Use PascalCase for component names.
- We keep a copy of every image - all images are uploaded and displayed from Cloudinary
- Use "Vue.js-Israel-meetup-
Host name
-dd.mm.yy
" for naming event image/public/images/events
- Use "Vue.js-Israel-speakers-
first name
-last name
-dd.mm
" for naming speaker poster image/public/images/speaker-posters
- Use "
First name
Last name
" for naming speaker profile image/public/images/speaker-pictures
Use the script setup
syntax for single-file components when possible.
- Use a consistent indentation of 2 spaces.
- Utilize the utility-first approach provided by Tailwind CSS for styling components.
- Avoid unnecessary custom styles when a Tailwind utility class is available.
- Provide meaningful comments for complex logic or non-trivial code sections.
- Avoid unnecessary comments that only restate the code.
We are using linters and code formatters (ESLint, Prettier) to automate and enforce these guidelines.
Remember to keep the codebase clean, modular, and easily maintainable by following these conventions.
- Contact-us page form uses form.texi API for submission via email.