Getting started
Setup
Development Environment
Prerequisites
- IDE: JetBrains Rider or VSCode & Visual Studio Community
- Database: MSSQL (Developer Edition) as default named instance (Basic Setup)
- Database Tools: SSMS (SQL Server Management Studio)
- Containerization: Docker Desktop (or similar for prebuilt containers)
- Message Queue RabbitMQ (Install or use docker-compose in the core submodule
docker compose up -d)
Version Control Setup
- Install Git & Git Bash (Checkout as Is - Checkin with Unix Line Breaks)
- Generate SSH Certificate:
ssh-keygen(generate as default id_rsa without password) You can run the following command on Git Bash:ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ""Take note of where this is saved. - Sign up with Bitbucket and GitHub; You should be able to sign in with your Draftworx email on Bitbucket.
- Add the SSH public key you created earlier to both GitHub and Bitbucket (SSH checkout) It should be here:
~/.ssh/id_rsa.pub - You can test your connection by running the following in your Git Bash:
ssh -T git@bitbucket.org
Node.js Environment
- Install NodeJS (Windows Installer)
- Once NodeJS is installed, you can install pnpm by running the following in powershell:
npm install -g pnpm@latest-10 - Install Bower:
npm install bower -g
Project Setup
Once everything is installed, navigate to the folder you'd like to store your repos in
Main Source Repositories
Run the following to clone the main Cloud repos.
bash
git clone git@bitbucket.org:draftworx/dxcloud.server.git
git clone git@bitbucket.org:draftworx/dxcloud.webui.git
git clone git@bitbucket.org:draftworx/dxcloud.ui.vite.gitSubmodules
Once your repos are cloned, you're going to have to initialize and clone the submodules.
bash
cd dxcloud.server
git submodule init
git submodule updateServer Project & Data
- Run the restore base data script. You can use this as an opportunity to set up an alias for powershell on Git Bash.
- Navigate to your home directory:
cd ~ - Create or edit your .bashrc file:
nano .bashrc(You can use any text editor) - Add the alias line:
alias powershell="powershell.exe" - Save the file and exit the editor.
- Reload your bash config:
source ~/.bashrc - You can now navigate back to the dxcloud.server repo and run the following:
powershell ./scripts/restore-data.ps1
- Navigate to your home directory:
- Open the server project in your IDE, and set all the server projects (DxCloud.Server.*) to startup. You can now run the project.
Web Projects
- Start the Angular project (dxcloud.webui) by navigating to the folder and running the following in the terminal(IDE terminal is easiest):
pnpm dev - Start Vue project (dxcloud.ui.vite) by navigating to the folder and running the following in the terminal(IDE terminal is easiest):
pnpm dev - Login with development account (Ask a team member for creds)
Courses
AWS
Amazon Web Services (AWS) Certified - 4 Certifications!
CSS
CSS - The Complete Guide 2024 (incl. Flexbox, Grid & Sass)
Tailwind
Tailwind CSS from Scratch | Learn By Building Projects
Typescript
Mastering Typescript - 2024 Edition
Understanding Typescript
Vue
Vue 3 - The complete guide
Complete Vue Developer Bootcamp (Pinia, Vitest)
UI Libraries
- A JavaScript datagrid for enterprise.
- A promise-based HTTP client for making XMLHttpRequests.
- The Sass version of the popular Bootstrap framework (version 3).
- A simple yet flexible JavaScript charting library.
- A pluggable linting utility for JavaScript and JSX.
- A library to save files on the client-side.
Gulp:
- A toolkit for automating tasks in the development workflow.
- A tool for preventing bad Git commits.
- A set of tools and resources for working with icon sets.
- A Vue.js modal component.
- A fast and feature-rich JavaScript library.
- Run linters on pre-committed files.
- A utility library for working with arrays, numbers, objects, strings, etc.
- A library for parsing, validating, manipulating, and formatting dates.
- A TypeScript library for OpenID Connect (OIDC) and OAuth 2.0.
- A state management library for Vue.js.
- A logger for the Pinia state management library.
- A utility-first CSS framework.
- A set of icons for PrimeVue.
- A Vue.js UI component library based on PrimeFaces.
- An opinionated code formatter.
- A modern WYSIWYG editor for the web.
Sass:
- A popular CSS preprocessor.
- A beautiful, responsive, customizable, and accessible replacement for JavaScript's popup boxes.
- A utility-first CSS framework for rapidly building custom designs.
- A superset of JavaScript that adds static types.
- Internationalization plugin for Vue.js.
- A tool to extract i18n messages from Vue components.
- A Vue.js validation library.
- A Vue.js plugin for dynamically loading scripts.
- The official router for Vue.js.
- A collection of essential Vue Composition API functions.
Vite:
- Next Generation Frontend Tooling
- Next Generation Testing Framework
- The JavaScript module bundler
Resources
Complex vue 3 state management Pinia
RealWorld example apps
Dynamic Components with Vue
Migrating from promises to async await
How To Add Loading Indicators to a Vue.js Application