This project consists of many technologies, however, I have made it as minimal as possible to avoid bloatware.
You will need node
and npm
to run this project as a developer and build it from source.
- Fork this project to your own
Git
account - this will make a personal copy for you to make, commit and push your own edits. - Clone your forked version and run
npm install
. This will install all necessary dependencies, including dev-dependencies, to allow you to build the project alongside install developer tools to make development easier. - Pick a feature (off the roadmap, if you are out of ideas) you will be implementing and make a work-in-progress pull request into the original repository.
- Run
npm start
to build and bootup the app to ensure that it is working for you. You can exit usingCtrl + C
once you have finished testing it. - You can start developing and making edits to your files! You can run
npm run watch
to have Webpack and Typescript listen to your changes as to verify the correctness of your code. - Once done, test your code and then lint it using
npm run lint
. - Once the linter has approved, commit your code and make your pull request ready. A GitHub action will verify that your code is linted against the rules set for the repository as well as check for any build errors.
The project repository will follow this structure when you are working with it.
assets/
- Any visual assets needed for thisREADME.md
documentbuild/
- Built files from performingnpm run build
or any command that uses it.icons/
- Production-ready icons and logos generated fromnpm run icon-gen
node_modules/
- Folder to host your installed node modules for this repository. This is generated afternpm install
.out/
- Output directory for production build of Vapor. This is created by runningnpm run make
src/
- Source files for this project. The majority of the code you should be making edits to should be inside here.app/
- All source files related to the content of the Desktop appscreens/
- A set ofReact
components that define a top-level non-RootJSX
componentscomponents/
- A set ofReact
components that are served on top of screensApp.tsx
- HoistsReact
renderer, renderingindex.tsx
index.tsx
- The most top-levelReact
component that is rendered for the project
lib/
- Library of custom-made functions interacting with Steam APIs to perform procedures or get data.steam/
- Library to interact with Steamstore/
- Library to interact withElectron-Store
to store user data persistently
main.ts
- Boots upElectronJS
preload.ts
- Script for any code withNode
API access to be ran before loading any of the webpage
.eslintrc
-ESLint
configuration file to lint your code vianpm run lint
.gitignore
- File of paths to hide fromGit
trackingicon.svg
- App IconLICENSE
- MIT licenseindex.html
- Base.html
page needed by Electron to hoist its code ontopackage-lock.json
- Details the versions of eachnpm
dependency to install to minimise configuration and installation issuespackage.json
- Details things about the project and letsnpm
know what dependencies are needed to be installedpostcss.config.js
- Needed by ourPostCSS
loader to recognise that we are usingTailwindCSS
to minify itREADME.md
- This document!tailwind.config.js
-TailwindCSS
configuration filetailwind.css
- File denoting whichTailwindCSS
directives are being usedtsconfig.json
- A build configuration file to let theTypeScript
Compiler know how to convert ourTypeScript
files ending in*.ts
into plainJavaScript
*.js
files.webpack.common.js
- A build configuration file to let the Webpack Babel Compiler know how to convert ourTypeScript-React-TailwindCSS
src/
files into an optimisedbuild/
file of plain oldJS
,HTML
andCSS
.