Howdy everyone! Welcome to the new concord (name still pending) repository!
Here is a walkthrough of all of the tools that you will need and how to install all of them.
IF YOU HAVE ANY QUESTIONS, PLEASE REACH OUT TO TREVOR
This is a low overhead virtual machine that runs a Linux distrubtion on a Windows computer. We will be using this to standardize all of our terminals/command prompts in a Unix-like shell.
Run as Administrator
on the right side of the search windowdism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Microsoft Store
, press windows key and type Microsoft Store.Ubuntu
and install.Ubuntu
application on your computer and have a fully functional Unix-like shellMicrosoft Store
Windows Terminal
and installUbuntu
terminal.https://code.visualstudio.com/
Remote - WSL
https://nodejs.org/en/
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
git --version
if it returns a version number, then you're done!sudo apt-get install git
to install gitgit --version
git config --global user.name "YourGitHubName"
git config --global user.email "youremail@domain.com"
with the email associated with your GitHub accountUbuntu
in Windows Terminal or open Terminal
on Macconcord
.git clone https://github.com/TBolton2000/concord.git concord
cd concord
nvm use
and run nvm install
if/when promptednpm install
which will install all javascript packages for this project (and takes a while)npm run dev
and wait until the program fully boots up, may take a minute or two.http://localhost:3000/
. Once everything is started, you should be able to refresh this page and see our web application running locally.CONGRATS YOU'RE DONE!
Feel free to poke around the files. A lot of the files are automatically generated boiler plate. We will write code in the /src/ directory.
/concord
file on your computer in Terminal (Ubuntu in Windows Terminal or Terminal on Mac)code .
to open this folder in Visual Studio code using a Unix-style terminal.Ctrl+</code> on Windows or <code>Cmd+
on Mac)git checkout -b new-branch-name
. See below for more information on git.git status
to see what files you have made changes to.git add filename
or add all using git add .
git commit -m "Your commit message"
git push
master
branch. master
branch. git fetch
to know about all changes from other team members from the GitHub repository to your local git repository. git fetch
will not change any files in your local repository. In order to actually get your branches to have the changes, nagivate to that branch, git checkout branch-name
, then run git pull
to update your local files.git status
out! git status
is your best friend and will help guide you to do what you want to do.tsconfig.json
for client and server.
NodeJs 12.13+
, Chrome 79+
or FireFox 72+
.
├── /node_modules/ # 3rd-party libraries and utilities
├── /dist/ # All the generated files will go here, and will run from this folder
├── /src/ # The source code of the application
│ ├── /client/ # React app
│ ├── /services/ # Express server apps hosting our different services
│ ├── /shared/ # The shared code between the client and the server
├── /assets/ # images, css, jsons etc.
├── .eslintrc # es-lint configuration
├── .prettierec # prettier configuration
├── .gitignore # ignored git files and folders
├── .nvmrc # Force nodejs version
├── .env # (ignored) Can be used to override environment variables
├── index.js # The server's entry point
├── package.json # The list of 3rd party libraries and utilities
└── tsconfig-for-webpack-config.json # using TypeScript for the webpack config file
├── README.md # This file
npm run dev
- Client and server are in watch mode with source maps, opens http://localhost:3000npm run test
- Runs jest testsnpm run lint
- Runs es-lintnpm run build
- dist
folder will include all the needed files, both client (Bundle) and server.npm start
- Just runs node ./dist/server/server.js
npm start:prod
- sets NODE_ENV
to production
and then runs node ./dist/server/server.js
. (Bypassing webpack proxy)All applications require a config mechanism, for example, SLACK_API_TOKEN
. Things that you don't want in your git history, you want a different environment to have different value (dev/staging/production). This repo uses the file config.ts
to access all your app variables. And a .env
file to override variable in dev environment. This file is ignored from git.