Set up a New Developer Machine

Set up a New Developer Machine

Set up a New Developer Machine

Objectives

Set up a Development environment for FullCount Developer from a clean Windows OS installation, after General FullCount tools and software has been added. 

Outline installation guidelines and additional setup under 'Software - Tech Team'  Checklist located  New Hire Checklist

Prerequisites

  • Clean installation of WindowsOS (11 at time of writing)
  • Active network connection.
  • Keyboard & Mouse

 

Instructions

Quicklinks

Some stuff may already be installed for you!

Java Development

  1. Download and install Adoptium latest JDK 8

https://adoptium.net/temurin/releases/?version=8&os=windows

 

Source Control

  1. Download and install TortoiseSVN here
    1. Make sure you enable 'command line client tools' so it can integrate with IntelliJ
  2. Create local directories
    1. C:\java\codebase
    2. C:\java\tools
  3. Acquire username and password from Systems Administrator. 
    1. This will be needed for committing and updating the SVN repos, but it is not needed at this stage. Save it in KeePass as you will need it later!
  4. Checkout any repositories you will be accessing from source control into C:\java\codebase under their repo name.
    1. Take a look at the Checkout section of the Subversion Guide for instructions
    2. To get started building our base project, you will need to download: 
      1. internal: http://sourcecontrol.fullcount.net/repos/internal
      2. notifications: This is on github now - https://github.com/FullCount-Development/notifications. You will need to do the github steps before you can grab this
      3. tools: http://sourcecontrol.fullcount.net/repos/tools
    3. Exhaustive list of all FullCount SVN project repositories: Knowledgebase Repository Article
  5. Download and install Git
  6. Download and install GitHub Desktop
    1. If you do not have a invite to the FullCount Github repositiories then ask for one
    2. Set your GitHub account with your FullCount email
    3. You should join the organization before you setup Github Desktop

Oracle XE

https://www.oracle.com/database/technologies/xe-downloads.html

  1. Download Oracle 21c Express Edition. You will probably have to create an account for this, you can just use your fullcount email. Make sure you save your password in your KeePass.
  2. Update your environment varialbes
    1. Search for environment variables or go to System Properties > Environment Variables
    2. Under the System variables section, add new variable with 'ORACLE_HOSTNAME' as Variable name and 'localhost' as Variable value
  3. Add a local system admin user to install Oracle XE with
    1. Search for the Computer Mangement application on local machine
    2. Expand folders and right click on Users folder and select New User...
    3. Fill out fields and click create
    4. Select Groups -> Administrators folder. Right Click and select Add to Group...
    5. Click Add
    6. Enter local user details and click Check Names. Once the user appears, click OK.
    7. Confirm user appears under Administrators group as active. Click OK.
    8. Login to Windows with local administrator account; you can do this by using '.\<account_name>' from the password login page.
  4. Install Oracle DB
    1. Navigate to location for installation media as the local system admin
    2. Right click on setup.exe and Run as Administrator

    3. Accept terms of license agreement
    4. Confirm destination folder
    5. Create a system password. Store this value in Keepass!



  5. Open C:\app\<username>\product\21c\homes\OraDB21Home1\network\admin\tnsnames.ora in your favorite text editor
    1. Confirm that the information in tnsnames.ora looks like the information below. You may or may not need to change anthing here.
  6. Restart the OracleServiceXE service via Windows Services.   -> if this step doesn’t work, restart your system to make sure environment variables take effect
  7. Upgrade TZ file version to match new 19c production database (https://docs.oracle.com/en/database/oracle/oracle-database/19/spmsu/upgrading-time-zone-file-version-after-upgrading-oracle-db.html)
    1. Copy following files from T:\TechServices\Projects\Server Builds\DB Server rebuild\21cXE\ directory to C:\app\<username>\product\21c\dbhomeXE\oracore\zoneinfo\ on your local machine
      1. timezlrg_43.dat
      2. timezone_43.dat
    2. Run T:\TechServices\Projects\Server Builds\DB Server rebuild\21cXE\ developer_machine_build_21cXE.sql in SQL Developer. You will be reminded to do this in the SQL Developer instructions!

SQL Developer

  1. Download SQL Developer
    1. The version you install must be compatible with JDK8
  2. Unzip to C:\program files\
  3. Setup connections to localhost, and any other connections needed (Central: Dev/Test/Prod, Integration: Test/Prod etc)
    1. Open SQL Developer, in "Connections" tab on the left click the green "+" button.
    2. For the localhost connection, fill in the following: 
      1. This is the same password from the previous Oracle XE setup step 15
      2. This is a connection for the general Localhost user, NOT the System User. Step 4 shows you how to do that
    3. Hit "test" to test the connection, and if it is successful hit "Save." You should have a new connection in your "Connections" tab. Hit the "+" next to the system_localhost connection to connect to it. A new tab will open up in SQL Developer where you can run queries.
    4. Next, you will need to create a connection as the System User. Press the green + to create a new connection in the top left, and make your login look like the following: 
      1. This is basically the same as the first one, the only two things you need to change are:
        1. username should be "sys"
        2. Role should be "SYSDBA"
    5. 3 more connections need to be added for the dev, test, and prod databases. Get your username and password from Rick. The following is an example for dev, but test and prod will be extremely similar (just replace "dev" with either "test" or "prod"). Pick different colors for each connection so you have an easy visual cue as to what database you're connected to:
  4. Follow instructions outlined in article Run Baseline on Local XE Database
  5. Now, run the TZ script mentioned earlier (located at T:\TechServices\Projects\Server Builds\DB Server rebuild\21cXE\ developer_machine_build_21cXE.sql). Run this as the "sys" db user!
  6. Restart local xe database for these changes to take effect (in system processes)
  7. Date formats can be updated to display dates with time by going to Tools > Preferences > Database > NLS. Date Format can be set to something like DD-MON-RR HH24:MI:SS to be able to see date and time.

IntelliJ Ultimate Idea

  1. Verify you have a active license assigned to you from FullCount / 365 Retail Markets
    1. You should have an email from JetBrains Sales <sales.us@jetbrains.com> which would be using your 365 email in the body (this is fine.)
    2. Create your Jetbrains account with link in that email
  2. After creating your Jetbrains account download and install IntelliJ
  3. When opening IntelliJ for the first time you will need to create a new Project
    1. Create a new empty project
      1. Verify you check .pom in the settings for creating a new project
    2. feel free to remove any files / modules it starts with
      1. You will not be able to remove the 'External Libraries' or 'Scratches and consoles'
  4. To import our repos into IntelliJ, go to File > Project Structure or hit SHIFT + CTRL + ALT + S
    1. In the Project Structure pop-up, on the left navigation, go to Platform Settings > SDKs. If a JDK 8 option exists, select it. If one does not exist, click the + button and click Add JDK. Choose your JDKs folder path. It may look something like "C:\Program Files\Eclipse Adoptium\jdk-8.0.412.8-hotspot".
    2. In the Project Structure pop-up, on the left navigation, go to Project Settings > Project.
      1. Set SDK to 1.8.
      2. Set Language level to 8
      3. Click Apply
    3. In the Project Structure pop-up, on the left navigation, go to Project Settings > Modules.
      1. in the 2nd column hit the + icon and hit import module
      2. For each repo select it's pom.xml file and click OK
      3. Repeat for every repo
      4. once all repos are imported click Apply or OK.
  5. To configure compilation, go to File > Settings or hit CTRL + ALT + S
    1. In the left navigation, select 'Build, Execution, Deployment' > Build tools > Maven. Under Maven home path, select your newly installed maven path. It will look something like: "C:\java\tools\apache-maven-3.6.3"
    2. Under 'Compiler' select Java Compiler | In the left navigation, select 'Build, Execution, Deployment" > Compiler > Java Compiler. Under Per-module bytecode version, set each module's target bytecode version to 8, if it's not already.
  6. I recommend installing the 'Maven Helper' plugin to help with maven commands, else you can do it through command line
  7. Appearance is up to you, feel free to get a free theme / update your color scheme as you want

Apache Tomcat

  1. Copy apache-tomcat-9.0.98.zip from T:\TechServices\Dev System files\Tomcat9 to your machine.
  2. Unzip contents and move to C:\java\tools
  3. Locate ojdbc8.jar from T-Drive (T:\TechServices\Dev System files\Tomcat9\lib) and place in {local-tomcat-path}\lib
  4. Locate conf directory on T-Drive (T:\TechServices\Dev System files\Tomcat9\conf) and copy-replace contents to {local-tomcat-path}\conf
  5. Add environment variables to your System variables (alternatively to startup scrips in bin)
    • JAVA_HOME - C:\Program Files\EclipseAdoptium\(jdk to run tomcat with)
    • CATALINA_HOME - root directory of tomcat (C:\java\tools\apache-tomcat-9.0.98)
    • sandbox - development
    • Under the "Path" variable, add "C:\java\tools\apache-tomcat-9.0.98\bin"

Running

  1. Command Line: add setenv.bat (T:\TechServices\Dev System files\Tomcat9\bin) to local tomcat_home\bin directory.

Maven

(Adam was under the impression that we need to use a Maven version lower than 3.8 for HTTP protocols)

  1. Download Maven from https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/ and extract the zip into your C:/java/tools folder.
  2. Update/create your MAVEN_HOME env variable to C:/java/tools/apache-maven-3.6.3
  3. Add an entry to your PATH environment variable for %MAVEN_HOME%\bin
  4. Locate 'settings' file at T:\TechServices\Dev System files\Maven, place this on your local system at C:\Users\{systemuser}\.m2\ 

Setting up Archiva Repositories

We use Archiva to store our release builds. After setting this up on our local machines, we enable our local maven builds to pull artifacts from the release directory. Documentation: https://maven.apache.org/guides/mini/guide-encryption.html

  1. Make sure you've downloaded Maven from the previous section.
  2. Navigate to the Maven bin directory via command line (should be something like C:/java/tools/apache-maven-<VersionNumber>/bin)
  3. Generate a strong ‘Master’ password via Keepass and run against the command:
    mvn --encrypt-master-password {masterpasswordfromkeypass}
    save the output of this command, you will use it in the next step!
  4. Create a new file under C:/users/{user}/.m2 called ‘settings-security.xml’ with the following contents (disregard the bullet points):
    • <settingsSecurity>
      • <master>{encryptedMasterPassword}</master> # what goes here is the entire output from the previous command, including the curly brackets
    • </settingsSecurity>
  5. Return to command line and run the following command with the archiva password you should have stored in Keepass:
    mvn --encrypt-password {archivapassword}
    NOTE: this must be the password you already use to access archiva
    like before, you will use this command in the next step!
  6. Once you have that password encrypted you can append your existing settings.xml file, in between the servers tags with the following (disregard the tags):
    • <server>
      • <id>release</id>
      • <username>archivaUsername</username>
      • <password>{encrytpedArchivaPassword}</password> # what goes here is the entire output from the previous command, including the curly brackets
    • </server>
  7. After this is complete, you can verify it is working by making sure you have the latest revision of a project currently using semantic versioning (like “fullcount-integration-model"). You can then clear the notifications dependency out of your local repo that is referenced by the project. Attempt to do a build of the project and you should see output in the IntelliJ console that looks like this:

[INFO] Downloading from : <a href="http://devtools.fullcount.net/archiva/repository/release/net/fullcount/notifications/1.0.1/notifications-1.0.1.pom">http://devtools.fullcount.net/archiva/repository/release/net/fullcount/notifications/1.0.1/notifications-1.0.1.pom</a> [INFO] Downloaded from : <a href="http://devtools.fullcount.net/archiva/repository/release/net/fullcount/notifications/1.0.1/notifications-1.0.1.pom">http://devtools.fullcount.net/archiva/repository/release/net/fullcount/notifications/1.0.1/notifications-1.0.1.pom</a> (3.3 kB at 23 kB/s) [INFO] Downloading from : <a href="http://devtools.fullcount.net/archiva/repository/release/net/fullcount/notifications/1.0.1/notifications-1.0.1.jar">http://devtools.fullcount.net/archiva/repository/release/net/fullcount/notifications/1.0.1/notifications-1.0.1.jar</a> [INFO] Downloaded from : <a href="http://devtools.fullcount.net/archiva/repository/release/net/fullcount/notifications/1.0.1/notifications-1.0.1.jar">http://devtools.fullcount.net/archiva/repository/release/net/fullcount/notifications/1.0.1/notifications-1.0.1.jar</a> (75 kB at 482 kB/s)

 

NodeJS

  1. Download and run the .msi file to install the latest LTS version of NodeJS (as of 7/22/2024 this will be version 20.15.1) from this link: https://nodejs.org/en

 

Android Studio

  1. Ask Susan or someone else if you will be working with Android Studio, if not you can ignore this.
  2. Download and install AndroidStudio
  3. Follow install wizard prompts.
  4. Ensure appropriate Android SDK is installed and active. (At time of this writing compile is done with 11.0 api level 30)
    • Tools -> SDK Manager -> SDK Platform.
  5. Ensure SDK Tools are installed.
    • Tools -> SDK Tools -> SDK Tools
      • Select Android Emulator, Android SDK Platform-Tools, Android SDK Tools, Intel x86 emulator accelerator (optional).
  6. Add platform-tools directory to environment variable PATH.
    • Default location is C:\Users\{systemuser}\AppData\Local\Android\Sdk\platform-tools

 

JasperSoft Studios

  1. Download JasperSoft Studios 7.0.0 from https://community.jaspersoft.com/files/file/72-jaspersoft-studio-community-edition/.
    1. You will need to make a Jaspersoft account to download.
  2. Right click js-studiocomm_7.0.0_windows_x86_64.zip in your downloads folder. Select 'Extract All', and click Extract
  3. Copy the newly created folder into your C:/java/tools folder.

Manually create a start menu shortcut

  1. Inside C:\java\tools\js-studiocomm_7.0.0_windows_x86_64\jaspersoftstudio, right click Jaspersoft Studio.exe and select 'Create Shortcut'.
  2. Rename the shortcut Jaspersoft Studio.
  3. Copy the shortcut into the %appdata%\Microsoft\Windows\Start Menu\Programs folder.
  4. Open the start menu and search Jaspersoft. Right click on the Jaspersoft Studio App and click 'Pin to Start'.

 

WinSCP

  1. Download and install WinSCP.
  2. You can set up connections after you have been granted access to individual servers. These can also likely be found in your Putty application.

 

Notepad++

  1. Download and install
  2. Some helpfull plugins include TextFX ...

 

Klogg (Large text file reader)

Klogg is a large text file viewer, capable of loading several gigabyte log files.

Download and install Klogg

Visual Studio Code

  1. Download and install Visual Studio Code
  2. In order for VSCode to dynamically lint our react-utility typescript project with our linter settings, you will need to add the following code to your settings file. Without these lines, linting will only be executed on project build.
    • Use Ctrl + Shift + P to search a command.
    • Search 'user settings' and choose 'Preferences: Open User Settings (JSON)'
    • Copy this code, paste, and save the file:

 

              

"eslint.validate": [

 

 

              

        "javascript", "javascriptreact", "html", "typescript", "typescriptreact",

 

 

              

    ],

 

 

              

    "typescript.validate.enable": true,

 

7-Zip

Download and install 7-Zip

Outlook

As a developer, you'll receive a lot of automated emails. We recommend you manage these by setting up automated Dev Team Outlook Rules.

Postman

Download and install Postman

Firefox 3.5.4

  1. This is only necessary to install once you're assigned to a touchscreen development task. This is to test backwards compatibility with older terminals.
  2. Download archived file here: http://www.oldversion.com/windows/download/mozilla-firefox-3-5-4
  3. When you run the executable, choose the 'Custom' installation. Specify a different location than the current Firefox. The easiest way to do this is probably just to add 3.5 to the prepopulated filepath (.ie 'C:\...\Mozilla Firefox 3.5\').

    • Related Articles

    • Developer Guide

      Installations An installation guide can be found in the Setup a New Developer Machine guide. Version Control Guide We use both Subversion and Git for version control. A crashcourse of our Subversion versioning processes can be found in the Subversion ...
    • Employee New Hire Checklist

      Employee Name: HR: Yes No Person responsible Comments Is this employee Full Time? Is this employee Part Time? Oasis HR Forms Benefits paperwork Aureon Employee Portal Bank routing info Office: Access (door key) Desk Space (Cube) Additional office ...
    • Developer Emails

      Developers will receive a large amount of emails, and it can be tough to determine which emails are important and which can be ignored. This table contains the information so developers can determine just that. Email Description Can I Ignore? To - ...
    • Redmine Development Task Workflow - New Community Instance

      Support Team enters new task in Redmine with a Project of Support, Tracker of Customer Support, Assignee of Development, and New Community Instance template. A member of the development team will check for new tasks under the development project as ...
    • Create New Community Record

      Create New Community Record Objectives Setting up a new community record in FullCount and updating applicable documents about the new community Prerequisites Access to production database Access to FullCount google map (requires google account) ...