# CS Help

Help booklet for common questions regarding CS resources, user access, etc.

# Welcome

This is the on-line guidebook for computing resources for general use within the School of Computer Science at the University of Windsor.

Here you will find documentation showing you how to use the various tools available to you for your course work, research work, administrative work, or personal development.

> Attention all students! We're inviting you to contribute by writing a how-to article. Share your knowledge and expertise with the community! The best submissions will receive an incentive. Start writing today!
> 
> Please send your submissions to accounts@cs.uwindsor.ca

All use of these facilities is subject to the [University of Windsor Bylaws and Policies](https://uwindsor.ca/policy), in particular, you should become familiar with the Acceptable Use Policy under the IT Services Quick Link.

---

If you have any questions or problems using these resources, please get in touch with one of the technical support staff:

[Sanjay Chitte](mailto:sanjay@uwindsor.ca)

[Aniss Zakaria](mailto:azakaria@uwindsor.ca)

[Maunzer Batal](mailto:maunzer@uwindsor.ca)

---

If you have questions or problems with this Web site's content, please contact the CS Technical Staff.

Please review the [Passwords](https://help.cs.uwindsor.ca/books/cs-help/page/passwords "Passwords") article containing important information about your CS and CAMPUS passwords.

# Accounts & Sign-in

Articles related to UW accounts and access

# Computer Science Access

<p class="callout info">For all your course work please log in to the server **delta.cs.uwindsor.ca**  and <span style="text-decoration: underline;">**not** </span>into <span style="text-decoration: underline;">cs.uwindsor.ca</span> .</p>

##### Methods to access the **delta.cs.uwindsor.ca** server.

- 1) SSH [Remote Access](https://help.cs.uwindsor.ca/books/cs-help/chapter/software-for-remote-access)
- 2) Using [NoMachine](https://help.cs.uwindsor.ca/books/cs-help/page/nomachine "NoMachine")

For Password issues, Please read the [password](https://help.cs.uwindsor.ca/books/cs-help/page/passwords) page.

# Passwords

#### CS Members

**Definition**

A UWinID and password is required to use the resources within the School. The UWinID must be "attached" to Computer Science, meaning that you must be taking a computer science course or a course hosted on our servers, be a computer science major, or a faculty or staff member employed in Computer Science. All active students and staff should have their own UWinID username and password, which is generated and maintained by the University of Windsor Information Technology Services department (ITS). People with an active UWinID and password, and with an attachment to the school of computer science resources, either through employee group, study major, or course enrollment are automatically granted access to the linked systems listed below. Specialized members of the general public, namely alumni, prospective students, event participants, school teachers, and employers may also be granted access to some resources.

#### UWinID and Passwords

**Managing your campus password**

You can manage your campus password by visiting [UWin Account](https://account.uwindsor.ca/).

<table class="plainlinks metadata ambox ambox-notice" id="bkmrk-your-uwinid-does-not" role="presentation"><tbody><tr><td class="mbox-image"><div style="width: 52px;">![Information&#95;icon4.svg.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-11/information-icon4-svg.png)</div></td><td class="mbox-text"><div class="mbox-text-span">Your UWinID **DOES NOT** include @uwindsor.ca. The identifier **userid@uwindsor.ca**, which is composed of the UWinID **userid** and the domain name **uwindsor.ca**, is your Microsoft account in the campus' Azure Active Directory tenant.</div></td></tr></tbody></table>

<table class="plainlinks metadata ambox ambox-notice" id="bkmrk-your-uwinid-is-to-be" role="presentation"><tbody><tr><td class="mbox-image"><div style="width: 52px;">![Information&#95;icon4.svg.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-11/information-icon4-svg.png)</div></td><td class="mbox-text"><div class="mbox-text-span">Your UWinID is to be used entirely in **lowercase** characters!</div></td></tr></tbody></table>

##### Password synchronization with Computer Science 

When you change your UWinID password through [UWin Account](https://account.uwindsor.ca/), it will synchronize automatically for CS servers that use LDAP authentication at regular intervals (every 15 minutes), with the exception of the following:

- CS Active Directory accounts
- DirectAdmin accounts
- Oracle Database Server accounts

To synchronize your passwords for the services listed above with your campus password, please use the [CS Password Utility](https://auth.cs.uwindsor.ca/).

#### CS Password Utility

**Managing your Computer Science Password**

The [CS Password Utiliity](https://auth.cs.uwindsor.ca/) is an on-line self-service application designed to allow CS Members to reset their passwords and user accounts on systems and services within the School of Computer Science.

<table class="plainlinks metadata ambox ambox-notice" id="bkmrk-you-must-use-this-ut" role="presentation"><tbody><tr><td class="mbox-image"><div style="width: 52px;">![Information&#95;icon4.svg.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-11/information-icon4-svg.png)</div></td><td class="mbox-text"><div class="mbox-text-span">You **MUST** use this utility after enabling your campus UWinID, and **each and every time you change your campus password**.</div></td></tr></tbody></table>

<table class="plainlinks metadata ambox ambox-notice" id="bkmrk-you-should-use-this-" role="presentation"><tbody><tr><td class="mbox-image"><div style="width: 52px;">![Information&#95;icon4.svg.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-11/information-icon4-svg.png)</div></td><td class="mbox-text"><div class="mbox-text-span">You **SHOULD** use this utility whenever you experience trouble authenticating on CS resources.</div></td></tr></tbody></table>

<table class="plainlinks metadata ambox ambox-content" id="bkmrk-there-are-some-chara" role="presentation"><tbody><tr><td class="mbox-image"><div style="width: 52px;">![Ambox&#95;important.svg.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-11/ambox-important-svg.png)</div></td><td class="mbox-text"><div class="mbox-text-span">There are some characters you must not use in your campus password! In particular, you **MUST NOT USE** a FORWARD SLASH (**/**), BACKSLASH (**\\**), SPACE, or DOUBLE QUOTATION MARK (**"**) in your campus password. If you have **ANY** of these characters in your campus password, you **MUST** change your campus password immediately in order to use our systems!</div></td></tr></tbody></table>

**Additional non-password related functions**

This utility will also automatically resolve the following issues, if applicable:

- Remove your IP from the myweb.cs.uwindsor.ca server blacklist
- Unlock your Oracle account in the CS01 instance, if possible.

**Session results**

**[![image5.jpg](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/image5.jpg)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/image5.jpg)**

#### Linked Systems  


- Computer Science Linux Desktop Servers
- Web Hosting services on **myweb.cs.uwindsor.ca** (websites, MySQL and @cs.uwindsor.ca email)
- **cswifi** Wireless Network(EAP authentication required, and checked against the CS Active Directory domain)
- CS Computer Lab Clients
- Cloud Storage (owncloud.cs.uwindsor.ca)
- Oracle Database (CS01 instance)now

# VPN

The University of Windsor uses a firewall. Many protocols or ports are blocked by the firewall, so you may need to establish a connection through the campus Virtual Private Network (VPN) to access resources and data on the campus private network.

#### What does the VPN connection do?

The VPN connection *tunnels* network traffic over a securely encrypted connection. Once connected to the VPN portal, your device will receive a new IP address and IP route provided by the university and recognized internally by the campus firewall.

<p class="callout info">[Why do I need to use the Campus VPN?](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/Requests/ServiceDet?ID=10002)</p>

#### ITS Documents related to the Campus VPN

<table border="1" id="bkmrk-installing-globalpro" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 11.5663%;"></col><col style="width: 88.4337%;"></col></colgroup><tbody><tr><td class="align-center">[![windows (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/HMBwindows-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/HMBwindows-custom.png)</td><td>[Installing GlobalProtect VPN client on a Windows computer](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/KB/ArticleDet?ID=44347)</td></tr><tr><td class="align-center">[![macOS (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/macos-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/macos-custom.png)</td><td>[Installing GlobalProtect VPN client on macOS](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/KB/ArticleDet?ID=44348)</td></tr><tr><td class="align-center">[![android (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/650android-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/650android-custom.png)</td><td>[Installing GlobalProtect VPN client on mobile devices (Apple, Android)](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/KB/ArticleDet?ID=112514)</td></tr><tr><td class="align-center">[![linux (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/linux-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/linux-custom.png)</td><td>[Installing GlobalProtect VPN client on Linux Devices](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/KB/ArticleDet?ID=120611)</td></tr></tbody></table>

#### Download

##### Windows and macOS

Authenticate with your UWinID and password on the university's GlobalProtect Portal to get to the GlobalProtect Client download links.

<table id="bkmrk-download-for-windows"><tbody><tr><td colspan="2"><table class="plainlinks imbox imbox-style" role="presentation"><tbody><tr><td class="mbox-image">[![windows (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/HMBwindows-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/HMBwindows-custom.png)[![macOS (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/macos-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/macos-custom.png)</td><td class="mbox-text">[Download for Windows and macOS](https://securelogin.uwindsor.ca)</td></tr></tbody></table>

</td></tr><tr><td colspan="2"><table class="plainlinks metadata ambox ambox-notice" role="presentation"><tbody><tr><td class="mbox-image"><div style="width: 52px;">![Information&#95;icon4.svg.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-11/information-icon4-svg.png)</div></td><td class="mbox-text"><div class="mbox-text-span">GlobalProtect may seem to install properly in macOS, but sometimes will not work if it failed to allow access to the installed system extension. See [Installing GlobalProtect VPN client on macOS](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/KB/ArticleDet?ID=44348).</div></td></tr></tbody></table>

</td></tr></tbody></table>

**Checking the Windows version**

If you are running Windows, please check the version to determine if you should install the 32-bit or 64-bit version.

[![image6.jpg](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/image6.jpg)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/image6.jpg)

Press the Windows + Pause keys

#### Android, iOS, Chromebook and Windows UMP

Download the GlobalProtect Client from the respective device's app store.

<table id="bkmrk-android-and-chrome-o"><tbody><tr><td>### <span class="mw-headline" id="bkmrk-android-and-chrome-o-2">Android and Chrome OS devices</span>

<table class="plainlinks imbox imbox-style" role="presentation"><tbody><tr><td class="mbox-image">[![android (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/650android-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/650android-custom.png)[![chrome (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/chrome-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/chrome-custom.png)</td><td class="mbox-text">[Download the GlobalProtect App for Android](https://play.google.com/store/apps/details?id=com.paloaltonetworks.globalprotect)</td></tr></tbody></table>

[Check which Chrome OS Systems support Android Apps](https://www.chromium.org/chromium-os/chrome-os-systems-supporting-android-apps/)

</td></tr><tr><td>### <span class="mw-headline" id="bkmrk-ios-devices-1">iOS devices</span>

<table class="plainlinks imbox imbox-style" role="presentation" style="width: 92.3176%;"><tbody><tr><td class="mbox-image" style="width: 10.0305%;">[![macOS (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/macos-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/macos-custom.png)</td><td class="mbox-text" style="width: 89.9151%;">[Download the GlobalProtect App for iOS](https://apps.apple.com/ca/app/globalprotect/id1400555706)</td></tr></tbody></table>

</td></tr></tbody></table>

##### Linux

Install [**openconnect**](http://www.infradead.org/openconnect/) using the package manager for your Linux distribution.

#### Connecting to the campus VPN

##### Using GlobalProtect Clients

Windows and macOS devices use the **networklogin.uwindsor.ca** portal.

Mobile devices, including Android, iOS, Chromebook, and ARM-based Surface tablets, use the **mobilevpn.uwindsor.ca** portal. Refer to [VPN#ITS\_Document\_related\_to\_the\_Campus\_VPN](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/KB/ArticleDet?ID=112514 "VPN") for detailed instructions for setting up a connection on your device.

##### Using Openconnect with Linux

<p class="callout info">The Openconnect integration with NetworkManager does not properly open the connection to the portal. You must use the command-line for your VPN connection to work correctly.</p>

Reserve a terminal window for the VPN connection, and run the command below, replacing **userid** with your **UWinID**, in the reserved terminal:

<table id="bkmrk-sudo-openconnect---p"><tbody><tr><td>

```bash
sudo openconnect --protocol=gp mobilevpn.uwindsor.ca -u userid

```

</td></tr></tbody></table>

Linux, like mobile devices, uses the **mobilevpn.uwindsor.ca** portal.

#### PAN GlobalProtect HIP with open-connect

And because you are in Computer Science ...

You may notice a message like

```
POST https://mobilevpn.uwindsor.ca/ssl-vpn/hipreportcheck.esp
WARNING: Server asked us to submit HIP report with md5sum 923700b124549fa2954cc08845be3c60.
    VPN connectivity may be disabled or limited without HIP report submission.
    You need to provide a --csd-wrapper argument with the HIP report submission script.
```

this when you run open connect as shown in [VPN#Using\_Openconnect\_with\_Linux](https://docs.paloaltonetworks.com/globalprotect/6-0/globalprotect-app-user-guide/globalprotect-app-for-linux/download-and-install-the-globalprotect-app-for-linux "VPN").

[Host Integrity Protection](http://www.infradead.org/openconnect/hip.html) provides an explanation. If you want to include the *--csd-wrapper* option, you will need to specify the location of the script required.

For Debian-based distributions, for example, you can find the location of the scripts like this

```
~$ dpkg -L openconnect|grep hipreport
/usr/libexec/openconnect/hipreport-android.sh
/usr/libexec/openconnect/hipreport.sh
```

To avoid the above warning on a Linux client you can use

#### Testing the VPN Connection

The ping command is the simplest way to test if your active VPN Connection is working.

##### Windows

[![photo&#95;1.jpg](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/photo-1.jpg)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/photo-1.jpg)

Launch the hidden menu for power users using one of these methods:

- Press the *Win + X* keys on your keyboard
- Right-click on the Windows logo in the bottom-left corner of your desktop

In older versions of Windows 10, this menu will include shortcuts for the *Command Prompt* instead of *Windows Powershell*. Either is suitable for this test!

[![photo&#95;2.jpg](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/photo-2.jpg)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/photo-2.jpg)

ping 10.10.10.10 results

Run

```
ping 10.10.10.10
```

to determine if the campus DNS server is available.

[![image&#95;3.jpg](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/image-3.jpg)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/image-3.jpg)

New VPN provider IP address

Run

```
ipconfig
```

to display the new IP address while actively connected to the campus VPN portal.

[![image&#95;4.jpg](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/image-4.jpg)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/image-4.jpg)

New VPN provided routes

Run

```
route print -4
```

to display the new IP routes while actively connected to the campus VPN portal.

##### macOS

[![image&#95;5.jpg](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/image-5.jpg)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/image-5.jpg)

[Open or quit Terminal on Mac](https://support.apple.com/en-gb/guide/terminal/apd5265185d-f365-44cb-8b09-71a064a42125/mac)

This link can be found in the [Terminal User Guide](https://support.apple.com/en-gb/guide/terminal/welcome/mac) menu

Open a terminal and run

```
ping 10.10.10.10
```

to determine if the campus DNS server is available.

Your output should look similar to the Windows Powershell ping results above.

#### Linux

[![image&#95;6.jpg](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/image-6.jpg)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/image-6.jpg)

ping -c 5 10.10.10.10 results

Run

```
ping -c 5 10.10.10.10
```

to determine if the campus DNS server is available.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/ZtWimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/ZtWimage.png)

New VPN provided IP address

Using Debian, run

```
ip addr show tun0
```

to display the new IP address while actively connected to the campus VPN portal.

The network interface name may vary depending on the Linux distribution you use, but the IP will begin with the first two octets 172.18.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/GH4image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/GH4image.png)

New VPN provided IP routes

Run

```
ip route
```

to display the new IP routes while actively connected to the campus VPN portal.

# MFA

Multi-Factor Authentication (MFA) provides additional security for your UWin Account.

MFA is required for accessing MFA-protected services and apps, like Microsoft 365, from off-campus networks.

A UWin Account identifier **userid@uwindsor.ca**, is composed of the UWinID **userid** and the domain name **uwindsor.ca**; it is a Microsoft account in the uwindsor.ca domain of the campus' Azure Active Directory tenant.

#### <span class="mw-headline" id="bkmrk-its-documents-1">ITS Documents</span>

[What is MFA at UWindsor?](https://www.uwindsor.ca/itservices/multifactor)

[Options for secondary factors of authentication](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/KB/ArticleDet?ID=97614)

# Courses

# COMP1400

**Raptor** is used by COMP1400.  It is available on all the machines in computer science labs. Also can be used remotely using NoMachine Client.

Students can download the tool on their machines([Raptor](https://raptor.martincarlisle.com/ "Raptor")).

RAPTOR is a flowchart-based programming environment, designed specifically to help students visualize their algorithms and avoid syntactic baggage. RAPTOR programs are created visually and executed visually by tracing the execution through the flowchart. Required syntax is kept to a minimum. Students prefer using flowcharts to express their algorithms and are more successful in creating algorithms using RAPTOR than using a traditional language or writing flowcharts without [Raptor](https://raptor.martincarlisle.com/ "Raptor").

#### How to access Delta and using NoMachine Client

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/image.png)](https://itfaq.cs.uwindsor.ca/uploads/images/gallery/2024-01/image.png)

RAPTOR Avalonia Edition runs on MAC and Linux, More information is available on the landing page of the RAPTOR website.

# COMP 3150



# COMP 3670/4670/8677



# COMP 2057 Prof. David Mayo

Before connecting to the server, please ensure that you have access to Computer Science resources.

Please visit

[https://auth.cs.uwindsor.ca](https://auth.cs.uwindsor.ca)  and synchronise your password.

**Please use [VPN](https://help.cs.uwindsor.ca/books/cs-help/page/vpn) to connect to campus, and also use [VPN](https://help.cs.uwindsor.ca/books/cs-help/page/vpn) on the eduroam wifi.**

The following resource is dedicated to Prof David Mayo's class.

**Server:**  electron.cs.uwindsor.ca

Protocol to be used: **SFTP ( Secure File Transfer Protocol)**

This server only supports **the secure FTP** protocol. Please do not use FTP or SSH. This server will not provide you with a login shell even if the password is correct.

A screenshot of Filezilla on Mac

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/oCYimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/oCYimage.png)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/gt6image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/gt6image.png)

Check that I am logged on, you can see my remote site files ( I don't have any HTML files)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/kUFimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/kUFimage.png)

Command Line: sftp sanjay@electron.cs.uwindsor.ca

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/lOCimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/lOCimage.png)

**Additional information**

[https://help.cs.uwindsor.ca/books/cs-help/page/filezilla](https://help.cs.uwindsor.ca/books/cs-help/page/filezilla)

# COMP 3400

To run nvhpc on Delta

export PATH=/opt/nvidia/hpc\_sdk/Linux\_x86\_64/25.11/compilers/bin:$PATH  
export PATH=/opt/nvidia/hpc\_sdk/Linux\_x86\_64/24.3/comm\_libs/mpi/bin:$PATH

Compile your code

Thanks to Prof. Paul Preney for the test code  vecadd.cpp

```c++
// This program is very simple. Set size in main to be a large number if
// needed.
// vecadd.cpp

#include <cstddef>
#include <iostream>
#include <vector>
#include <numeric> // For iota
#include <algorithm> // For transform
#include <execution> // For parallel execution policies

void check(std::ostream& os, auto const& value, auto const& should_be_value)
{
  if (value == should_be_value)
    os << "OKAY";
  else
    os << "NOT_OKAY";
}

int main()
{
  using namespace std;

  size_t const size{ 1'000'000ULL};

  vector<int> a(size);
  vector<int> b(size);
  vector<int> result(size);

  iota(a.begin(), a.end(), 0); // a = {0, 1, 2, ...}
  iota(b.begin(), b.end(), size); // b = {size, size+1, ...}

  transform(execution::par_unseq,
    a.begin(), a.end(),
    b.begin(),
    result.begin(),
    [](int x, int y) { return x + y; }
  );

  // Verify a few elements (optional)
  cout << "result[0]: " << result[0] << ' '; check(cout,result[0],size); cout << '\n';
  cout << "result[1]: " << result[1] << ' '; check(cout,result[1],size+2); cout << '\n';
  cout << "result[size-1]: " << result[size-1] << ' '; check(cout,result[size-1],size-1+size*2-1); cout << '\n';
}
```

MakeFile

```bash
Makefile
CXXFLAGS=-O3

NVHPC_CXX=nvc++
NVHPC_CXXFLAGS=$(CXXFLAGS) --c++20 -stdpar=gpu
NVHPC_LDFLAGS=$(LDFLAGS)

GCC_CXX=g++
GCC_CXXFLAGS=$(CXXFLAGS) -std=c++20
GCC_LDFLAGS=$(LDFLAGS) -ltbb

all: vecadd-nvhpc.exe vecadd-gcc.exe

clean:
	rm *.exe

run: vecadd-gcc.exe vecadd-nvhpc.exe
	echo "Running vecadd-gcc.exe..."
	bash -c 'time ./vecadd-gcc.exe'
	echo -e "\n\n\n"
	echo "Running vecadd-nvhpc.exe..."
	bash -c 'time ./vecadd-nvhpc.exe'

%-nvhpc.exe : %.cpp
	$(NVHPC_CXX) $(NVHPC_CXXFLAGS) -o $@ $< $(NVHPC_LDFLAGS)

%-gcc.exe : %.cpp
	$(GCC_CXX) $(GCC_CXXFLAGS) -o $@ $< $(GCC_LDFLAGS)
```

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-01/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-01/image.png)

# CS Servers

- The primary compute server is delta.cs.uwindsor.ca
- The primary webserver is myweb.cs.uwindsor.ca

# Software Available on Delta

Based on the image below you can see the software available on delta.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-02/scaled-1680-/N18image.png)](https://itfaq.cs.uwindsor.ca/uploads/images/gallery/2024-02/N18image.png)

# How to use myweb

**STEP 1**

go to [https://myweb.cs.uwindsor.ca/](https://myweb.cs.uwindsor.ca/)

and select the blue box option

[![image(1).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/image1.png)](https://itfaq.cs.uwindsor.ca/uploads/images/gallery/2024-01/image1.png)

**STEP 2**

Login with your UwinID and password

[![Screenshot from 2024-02-01 09-11-16.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-02/scaled-1680-/screenshot-from-2024-02-01-09-11-16.png)](https://itfaq.cs.uwindsor.ca/uploads/images/gallery/2024-02/screenshot-from-2024-02-01-09-11-16.png)

**Note:**

If you can't login, please sync your password at [https://auth.cs.uwindsor.ca](https://auth.cs.uwindsor.ca)

Additional details can be found in [this help article](https://help.cs.uwindsor.ca/books/cs-help/page/myweb "MyWeb").

# PhpMyAdmin

**STEP 1**

go to [https://myweb.cs.uwindsor.ca/](https://myweb.cs.uwindsor.ca/)

and select the blue box option

[![image(1).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/image1.png)](https://itfaq.cs.uwindsor.ca/uploads/images/gallery/2024-01/image1.png)

**STEP 2**

Login with your UwinID and password

[![Screenshot from 2024-01-31 11-57-45.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/screenshot-from-2024-01-31-11-57-45.png)](https://itfaq.cs.uwindsor.ca/uploads/images/gallery/2024-01/screenshot-from-2024-01-31-11-57-45.png)

**STEP 3**

After logging in, under Extra Features, there will be an option of **phpMyAdmin.**

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/mx5image.png)](https://itfaq.cs.uwindsor.ca/uploads/images/gallery/2024-01/mx5image.png)

# Delta.cs.uwindsor.ca

Delta is the School of Computer Science's main computing server.

You can reach Delta using any of these methods:

1. The School dedicated Linux labs: 
    - Java Lab: ER-3150
    - XLab: ER-3119
    - 300 Ouellette
2. From the web. [https://nx.cs.uwindsor.ca](https://nx.cs.uwindsor.ca)   (require VPN)
3. SSH: ssh <uwinid@delta.cs.uwindsor.ca>      (require VPN)

Delta is equipped with 2 x 64 cores Processors, 1 Terabyte of memory, and four GPUs (Nvidia A16)

<span style="text-decoration: underline;">**Notes**: </span>

- This server is shared among all students; please be mindful when running script/code. (e.g, use <span style="text-decoration: underline;">nice</span> command)
- You can use the Delta server directly from VS Code ([check this article](https://help.cs.uwindsor.ca/books/cs-help/page/vs-code "VS Code"))

# Software for Remote Access

Applications and programs commonly used to access the main computing server used by Computer Science Students. The primary server used for coursework is Delta ( delta.cs.uwindsor.ca ).

# Mobaxterm

MobaXterm is your **ultimate toolbox for remote computing**. In a single Windows application. It is an enhanced terminal for Windows with an X11 server, tabbed SSH client, and network tools. The free home edition is available at [Mobaxterm](https://mobaxterm.mobatek.net/download.html).

The free Mobaxterm Home Edition with full X server and SSH client is available for Windows.

### Download

<table class="plainlinks imbox imbox-style" id="bkmrk-download-mobaxterm-h" role="presentation"><tbody><tr><td class="mbox-image">[![windows (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/HMBwindows-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/HMBwindows-custom.png)</td><td class="mbox-text">[Download Mobaxterm Home Edition for Windows](https://mobaxterm.mobatek.net/download-home-edition.html)</td></tr></tbody></table>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/6ZDimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/6ZDimage.png)

#### <span class="mw-headline" id="bkmrk-installing-mobaxterm-1">Installing Mobaxterm</span>

The ***Installer*** is provided as a ZIP file; save it and open it. Extract all the files (\*.dat and \*.msi) into a directory. Go to the extraction sub-directory and run the MSI installer. Accept all the default settings.

### Using Mobaxterm

[A full description of Mobaxterm's features](https://mobaxterm.mobatek.net/features.html)

#### SSH

**<span class="mw-headline" id="bkmrk-configuring-a-sessio-1">Configuring a session to connect to delta.cs.uwindsor.ca</span>**

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-09/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-09/image.png)

Enter password on the second window

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-09/scaled-1680-/ELHimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-09/ELHimage.png)

#### X11 Forwarding

**<span class="mw-headline" id="bkmrk-requisite-x-server-i-1">The requisite X server is embedded!</span>**

<dl id="bkmrk-mobaxterm-has-an-emb"><dd>Mobaxterm has an embedded X server with X11 forwarding enabled by default, so nothing else is required to run GUI applications.</dd></dl>#### SSH using Mac OSX

Launch Terminal from the Application/Utilities.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-03/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-03/image.png)

You will see the following window. Enter ssh &lt;youruserid&gt;@delta.cs.uwindsor.ca

In the example below, Sanjay is my user ID.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-03/scaled-1680-/wQEimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-03/wQEimage.png)Enter your password.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-03/scaled-1680-/akHimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-03/akHimage.png)

<dl id="bkmrk--5"><dd></dd></dl>

# Filezilla

The **free** FileZilla Client is available for **Windows**, **macOS** and **Linux**.

<div class="mw-body ve-init-mw-desktopArticleTarget-targetContainer" id="bkmrk-" role="main"><div class="vector-body"><div class="mw-body-content mw-content-ltr" dir="ltr" lang="en-CA"><div class="mw-parser-output"><div aria-labelledby="mw-toc-heading" class="toc" role="navigation"> [ ] </div></div></div></div></div><div class="mw-body ve-init-mw-desktopArticleTarget-targetContainer" id="bkmrk--2" role="main"><div class="vector-body"><div class="mw-body-content mw-content-ltr" dir="ltr" lang="en-CA"><div class="mw-parser-output"><div aria-labelledby="mw-toc-heading" class="toc" id="bkmrk--3" role="navigation"></div></div></div></div></div>#### <span class="mw-headline" id="bkmrk-download-1">Download</span>

<div class="mw-body ve-init-mw-desktopArticleTarget-targetContainer" id="bkmrk-download-for-windows" role="main"><div class="vector-body"><div class="mw-body-content mw-content-ltr" dir="ltr" lang="en-CA"><div class="mw-parser-output"><table><tbody><tr><td><table class="plainlinks imbox imbox-style" role="presentation"><tbody><tr><td class="mbox-image">[![windows (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/HMBwindows-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/HMBwindows-custom.png)[![macOS (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/macos-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/macos-custom.png)[![linux (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/linux-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/linux-custom.png)</td><td class="mbox-text">[Download for Windows, macOS and Linux](https://filezilla-project.org/download.php?show_all=1)</td></tr></tbody></table>

</td></tr><tr><td><table class="plainlinks imbox imbox-style" role="presentation"><tbody><tr><td class="mbox-image">[![linux (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/linux-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/linux-custom.png)</td><td class="mbox-text">If you are running Linux, just use the package manager for your distribution to install it.</td></tr></tbody></table>

</td></tr></tbody></table>

</div></div></div></div>#### <span class="mw-headline" id="bkmrk-using-filezilla-1">Using FileZilla</span>

## <span class="mw-headline" id="bkmrk-sftp-1">SFTP</span>

**<span class="mw-headline" id="bkmrk-using-the-quickconne-1">Using the Quickconnect feature</span>**

<div id="bkmrk-either"><div>  
</div></div>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-09/scaled-1680-/OSaimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-09/OSaimage.png)

Use these settings:

- Set **Host** to an FQDN, for example **delta.cs.uwindsor.ca <span style="text-decoration: underline;"> or </span>(*electron.cs.uwindsor.ca*)**
- Set **Username** to your **UWinID** (all in lowercase characters)
- Set **Password** to your campus password
- Set **Port** to **22** (this is required if the host URL does not include the protocol prefix!)

Press the Quickconnect button to open a new SFTP file transfer session.

**<span class="mw-headline" id="bkmrk-configuring-a-connec-1">Configuring a connection using the Site Manager</span>**

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/Hm1image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/Hm1image.png)

Open the Site Manager from the File menu.

Use these settings in the **General** tab:

- Set **Protocol** to **SFTP - SSH File Transfer Protocol**
- Set **Host** to an FQDN, for example **myweb.cs.uwindsor.ca**
- Set **Username** to your **UWinID** (all in lowercase characters)
- Set **Password** to your campus password

Use this setting in the **Transfer Settings** tab:

- Check **Limit number of simultaneous connections**
- You can set the Maximum number of connections to between 1 and 5. If this number is too high, the server may blacklist your IP for attempting to open too many sessions simultaneously.

<div id="bkmrk--8"><div id="bkmrk--9"><div id="bkmrk--10"><div class="vector-search-box-vue  vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box" id="bkmrk--11" role="search"><div><form action="/mediawiki/index.php" class="vector-search-box-form" id="bkmrk--12"><div class="vector-search-box-inner" data-search-loc="header-navigation" id="bkmrk--13"></div></form></div></div></div></div></div><div id="bkmrk--14"><div id="bkmrk--15" role="banner"></div></div>

# Technical Resources Available

The School of Computer Science operates a modern, full-service data-center and computing facility for use by students, faculty, and staff. This facility provides:

- Linux desktop environments are providing remote and terminal-based access.
- Network-attached file storage.
- Network infrastructure consisting of wireless, copper and fiber connections independently switched.
- Virtual servers, domain hosting services (the MyWeb system).
- Specialized servers including Team Foundation Server, Oracle databases and Oracle Application Server.
- Microsoft Windows support.
- Computer science private cloud storage, and archival.
- Digital Media and video conferencing facilities based on open-source software.

Most users will access CS resources through the Linux desktops, or from their PC or tablets using our **(cswifi)** wireless network.

# Azure Education

#### <span class="mw-headline" id="bkmrk-microsoft-software-d-1">Microsoft Software Downloads</span>

<table border="1" id="bkmrk-%C2%A0-activate-your-azur" style="border-collapse: collapse; width: 100%; height: 29.7969px;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">[![Information&#95;icon4.svg.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/information-icon4-svg.png)](https://itfaq.cs.uwindsor.ca/uploads/images/gallery/2024-01/information-icon4-svg.png)   [Activate your Azure Account enabling your ability to download software](https://azure.microsoft.com/en-ca/free/students/)

</td></tr></tbody></table>

<table id="bkmrk-activation-of-your-a"><tbody><tr><td>

- Activation of your Azure Account is an important step!
- Otherwise, you may not see all of the software downloads you are entitled to!
- Use your *UWinID@uwindsor.ca* as your identity.
- You might need to renew your entitlement each year.
    
    <div class="flex justify-start">  
    </div><div class="mt-3 w-full empty:hidden"><div class="text-center"><div class="mx-auto"><div>  
    </div></div></div></div>

</td></tr></tbody></table>

The university subscribes to [Microsoft Azure Education Dev Tools for Teaching](https://azureforeducation.microsoft.com/devtools) providing access to a wide range of Microsoft development, productivity tools, and operating systems, such as:

- SQL Server
- Visual Studio Enterprise
- Machine Learning Server
- MS Project Professional
- SharePoint Server
- Windows 10
- Windows 11
- Windows Server
- Visio Professional
- and many others ...

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-05/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-05/image.png)

# Digital Research Alliance of Canada

The [Digital Research Alliance](https://alliancecan.ca/en) of Canada serves Canadian researchers, with the objective of advancing Canada’s position as a leader in the knowledge economy on the international stage. By integrating, championing and funding the infrastructure and activities required for advanced research computing (ARC), research data management (RDM) and research software (RS), we provide the platform for the research community to access tools and services faster than ever before.

To access SHARCNET / Alliance resources, you first need a CCDB account. Confirm with your supervisor whether they have an active CCDB account. Afterward, you'll need to create your own CCDB account, listing your supervisor as the PI. To do this:

1. Visit this page: [Apply for an account](https://alliancecan.ca/en/services/advanced-research-computing/account-management/apply-account).
2. Go to [https://ccdb.alliancecan.ca/](https://ccdb.alliancecan.ca/).
3. Click "Register."
4. Complete the form, agree to the policies, and click "Submit."
5. Fill out the next page.  
    Make sure to select the correct "Position" (e.g., Master's Student).  
    You will need your supervisor’s CCRI number to complete this section. Ask your supervisor for their CCDB CCRI number (they can find it by logging in to [https://ccdb.alliancecan.ca/)](https://ccdb.alliancecan.ca/%29).
6. Once finished, click "Submit application."
7. Next steps: Your supervisor will receive an email to approve or disapprove your application.  
    Once approved, you’ll be able to log in and access the clusters.

<table border="1" id="bkmrk-for-more-details-or-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>For further information or assistance, please contact:

**Paul Preney, OCT, M.Sc., B.Ed., B.Sc.**  
High Performance Computing Technical Consultant / Research Associate  
University of Windsor \| preney@uwindsor.ca  
SHARCNET \| https://www.sharcnet.ca \| preney@sharcnet.ca  
Compute/Calcul Ontario \| http://www.computeontario.ca  
Digital Research Alliance of Canada \| https://alliancecan.ca

</td></tr></tbody></table>

# Wireless

CS and UW wireless service

# cswifi

Computer Science wifi **"cswifi"** is available in the following buildings

- Lambton Tower
- Erie
- Windsor Hall
- 300 Ouellete

Linux OS, after clicking on the cswifi SSID

[![image(3).jpg](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-02/scaled-1680-/image3.jpg)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-02/image3.jpg)

View and Accept the certificate.

- if your username &amp; password doesn't work, please sync your password from [https://auth.cs.uwindsor.ca](https://auth.cs.uwindsor.ca)
- For help, please contact CS IT at <accounts@cs.uwindsor.ca>

# Eduroam

<p class="callout info">Please visit the following link for eduroam access.</p>

##### [Which wireless network should I use?](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/KB/ArticleDet?ID=49589)

##### [Connecting Computers and Mobile Devices to University of Windsor Wi-Fi](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/KB/ArticleDet?ID=51728)

##### [What is EDUROAM?](https://uwindsor.teamdynamix.com/TDClient/1975/Portal/KB/ArticleDet?ID=51495)

[EDUROAM ](https://eduroam.org/)(**edu**cation **roam**ing) is an international Internet access roaming service for users in research, higher education, and further education.

# MyWeb Tutorials

# MyWeb Tutorials: Login to MyWeb

**<span style="font-size: 13.0pt; line-height: 107%;">DirectAdmin</span>**<span style="font-size: 13.0pt; line-height: 107%;"> is a web-based hosting control panel that allows you to manage your website files, databases, and basic site settings through a browser.  
At the School of Computer Science, we use DirectAdmin under the name **MyWeb** to provide students with personal web hosting space.</span>

- <span style="font-size: 14.0pt; line-height: 107%;">Login to MyWeb using your UWINID and password:   
    [https://www.myweb.cs.uwindsor.ca](https://www.myweb.cs.uwindsor.ca)</span>
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/LiRimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/LiRimage.png)
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/WMlimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/WMlimage.png)
- <span style="font-size: 13.0pt; line-height: 107%;">If You cannot Log In  
      
    </span>
    
    <p class="callout success"><span style="font-size: 13.0pt; line-height: 107%;">You must **activate or re-sync your password** using the CS authentication portal:</span></p>
    
    <p class="callout success"><span style="font-size: 13.0pt; line-height: 107%;">[https://auth.cs.uwindsor.ca](https://auth.cs.uwindsor.ca) </span></p>

# MyWeb Tutorials: File Manager & HTML page

<span style="font-size: 13.0pt; line-height: 107%;">In this tutorial, we will create a simple HTML page and navigate through the website's files.</span>

##### <span style="text-decoration: underline;">**<span style="font-size: 13.0pt; line-height: 107%;">Accessing the File Manager</span>**</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Log in to [MyWeb](https://www.myweb.cs.uwindsor.ca/) (DirectAdmin)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">From the main dashboard, click File Manager</span>
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/Vjdimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/Vjdimage.png)
- <span style="font-size: 12.0pt; line-height: 107%;">You will see a directory tree showing files and folders associated with your account  
    </span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/cH3image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/cH3image.png)

##### <span style="text-decoration: underline;">**<span style="font-size: 13.0pt; line-height: 107%;">Understanding the File Structure</span>**</span>

<span style="font-size: 13.0pt; line-height: 107%;">Your account contains several folders. The most important ones are:</span>

**<span style="font-size: 13.0pt; line-height: 107%; font-family: 'Segoe UI Emoji',sans-serif; mso-bidi-font-family: 'Segoe UI Emoji';">📁</span><span style="font-size: 13.0pt; line-height: 107%;"> public\_html (Most Important)</span>**

- <span style="font-size: 13.0pt; line-height: 107%;">This is the **web root**</span>
- <span style="font-size: 13.0pt; line-height: 107%;">Any file placed here is accessible through your website</span>
- <span style="font-size: 13.0pt; line-height: 107%;">Example:</span>
- <span style="font-size: 13.0pt; line-height: 107%;">public\_html/index.html → [https://yourusername.myweb.cs.uwindsor.ca](https://yourusername.myweb.cs.uwindsor.ca) </span>


<span style="font-size: 13.0pt; line-height: 107%;">This is where your website files go</span>

**<span style="font-size: 13.0pt; line-height: 107%; font-family: 'Segoe UI Emoji',sans-serif; mso-bidi-font-family: 'Segoe UI Emoji';">📁</span><span style="font-size: 13.0pt; line-height: 107%;"> public\_ftp</span>**

- <span style="font-size: 13.0pt; line-height: 107%;">Used for **FTP access**</span>
- <span style="font-size: 13.0pt; line-height: 107%;">Typically not used unless you connect using an FTP client</span>
- <span style="font-size: 13.0pt; line-height: 107%;">Does **not automatically publish files to the web**</span>

**<span style="font-size: 13.0pt; line-height: 107%; font-family: 'Segoe UI Emoji',sans-serif; mso-bidi-font-family: 'Segoe UI Emoji';">📁</span><span style="font-size: 13.0pt; line-height: 107%;"> Other folders you may see</span>**

- <span style="font-size: 13.0pt; line-height: 107%;">logs – Website access/error logs</span>
- <span style="font-size: 13.0pt; line-height: 107%;">domains – Used when multiple domains/subdomains exist</span>
- <span style="font-size: 13.0pt; line-height: 107%;">System folders – Should not be modified</span>

*<span style="font-size: 13.0pt; line-height: 107%;">Do not delete folders unless instructed</span>*

##### <span style="text-decoration: underline;">**<span style="font-size: 13.0pt; line-height: 107%;">Creating or Uploading Files</span>**</span>

<span style="font-size: 13.0pt; line-height: 107%;">Inside **public\_html**, you can:</span>

- <span style="font-size: 13.0pt; line-height: 107%;">Upload files (HTML, PHP, images, CSS, JS)</span>
- <span style="font-size: 13.0pt; line-height: 107%;">Create new files</span>
- <span style="font-size: 13.0pt; line-height: 107%;">Create subfolders (e.g., images, css, js)</span>

<span style="font-size: 13.0pt; line-height: 107%;">Example structure:</span>

```
public_html/
├── index.html
├── about.html
├── css/
│   └── style.css
├── images/
│   └── logo.png
```

##### <span style="text-decoration: underline;">**<span style="font-size: 13.0pt; line-height: 107%;">Website Entry (Starting) Files</span>**</span>

<span style="font-size: 13.0pt; line-height: 107%;">When someone visits your website, the web server looks for **default index files**.</span>

**<span style="font-size: 13.0pt; line-height: 107%;">Common starting files:</span>**

- <span style="font-size: 13.0pt; line-height: 107%;">index.html</span>
- <span style="font-size: 13.0pt; line-height: 107%;">index.php</span>

*<span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">If both index.html and index.php exist, index.html will win and load first</span>*

##### <span style="text-decoration: underline;">**<span style="font-size: 13.0pt; line-height: 107%;">When to Use HTML vs PHP</span>**</span>

**<span style="font-size: 13.0pt; line-height: 107%;">Use HTML (.html) when:</span>**

- <span style="font-size: 13.0pt; line-height: 107%;">Your site is static</span>
- <span style="font-size: 13.0pt; line-height: 107%;">No database or server logic is needed</span>
- <span style="font-size: 13.0pt; line-height: 107%;">You are learning basic web structure</span>

**<span style="font-size: 13.0pt; line-height: 107%;">Use PHP (.php) when:</span>**

- <span style="font-size: 13.0pt; line-height: 107%;">You need server-side logic</span>
- <span style="font-size: 13.0pt; line-height: 107%;">You connect to a database</span>
- <span style="font-size: 13.0pt; line-height: 107%;">You process forms or user input</span>

##### <span style="text-decoration: underline;">**<span style="font-size: 13.0pt; line-height: 107%;">Quick Tips &amp; Common Mistakes</span>**</span>

<span style="font-size: 13.0pt; line-height: 107%; font-family: 'Segoe UI Symbol',sans-serif; mso-bidi-font-family: 'Segoe UI Symbol';">✔</span><span style="font-size: 13.0pt; line-height: 107%;"> Always place website files in **public\_html**  
</span><span style="font-size: 13.0pt; line-height: 107%; font-family: 'Segoe UI Symbol',sans-serif; mso-bidi-font-family: 'Segoe UI Symbol';">✔</span><span style="font-size: 13.0pt; line-height: 107%;"> File names are **case-sensitive** (Index.html ≠ index.html)  
</span><span style="font-size: 13.0pt; line-height: 107%; font-family: 'Segoe UI Symbol',sans-serif; mso-bidi-font-family: 'Segoe UI Symbol';">✔</span><span style="font-size: 13.0pt; line-height: 107%;"> One index file per folder is enough  
</span><span style="font-size: 13.0pt; line-height: 107%; font-family: 'Segoe UI Emoji',sans-serif; mso-bidi-font-family: 'Segoe UI Emoji';">❌</span><span style="font-size: 13.0pt; line-height: 107%;"> Don</span><span style="font-size: 13.0pt; line-height: 107%; mso-ascii-font-family: Aptos; mso-hansi-font-family: Aptos; mso-bidi-font-family: Aptos;">’</span><span style="font-size: 13.0pt; line-height: 107%;">t delete system folders  
</span><span style="font-size: 13.0pt; line-height: 107%; font-family: 'Segoe UI Emoji',sans-serif; mso-bidi-font-family: 'Segoe UI Emoji';">❌</span><span style="font-size: 13.0pt; line-height: 107%;"> Don</span><span style="font-size: 13.0pt; line-height: 107%; mso-ascii-font-family: Aptos; mso-hansi-font-family: Aptos; mso-bidi-font-family: Aptos;">’</span><span style="font-size: 13.0pt; line-height: 107%;">t expect files outside public\_html to be public</span>

---

##### <span style="text-decoration: underline;">**<span style="font-size: 13.0pt; line-height: 107%;">Create Your first HTML page</span>**</span>

- <span style="font-size: 13.0pt; line-height: 107%;">From "File Manager", go to "public\_html"</span>
- <span style="font-size: 13.0pt; line-height: 107%;">*<span style="text-decoration: underline;">Optional</span>*: backup your current index.html file (rename it to index.html-backup)  
    </span>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/y0Iimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/y0Iimage.png)
- Create a new file index.html  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/O2gimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/O2gimage.png)
- Right-click on the newly created index.html file and select "Edit"  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/SqVimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/SqVimage.png)
- In the new page, place your code, or optionally, copy the following code:  
    
    ```html
    
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Your Name - Personal Site</title>
        <!-- You can add CSS styling here or link an external CSS file -->
        <style>
            body {
                font-family: sans-serif;
                margin: 40px;
                line-height: 1.6;
            }
            h1 {
                color: #333;
            }
            p {
                color: #666;
            }
        </style>
    </head>
    <body>
        <h1>Hello, I'm [Your Name]</h1>
        <p>Welcome to my personal website!</p>
        <p>I am a student at School of Computer Science at the University of Windsor, and you can learn more about me on this page.</p>
        
        <h2>Interests</h2>
        <ul>
            <li>Coding</li>
            <li>Design</li>
            <li>[Your Other Interest]</li>
        </ul>
    
        <h2>Contact</h2>
        <p>You can reach me via email at [your email address].</p>
    </body>
    </html>
    
    ```
- Then "Save" the page and your refresh your website at [https://yourusername.myweb.cs.uwindsor.ca](https://yourusername.myweb.cs.uwindsor.ca)

Congratulations! You created your first website :)

</body></html>

# MyWeb Tutorials: Database Creation

<span style="font-size: 14.0pt; line-height: 107%;">This article provides step-by-step instructions for creating a database in MyWeb (DirectAdmin) and a table in phpMyAdmin.</span>

- <span style="font-size: 14.0pt; line-height: 107%;">Login to MyWeb using your UWINID and password:   
    [https://www.myweb.cs.uwindsor.ca](https://www.myweb.cs.uwindsor.ca)  
      
    </span>
- <span style="font-size: 14.0pt; line-height: 107%;">From “Account Manager” menu, click on “Databases”  
    </span>  
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/oeIimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/oeIimage.png)
    
    <span style="font-size: 14.0pt; line-height: 107%;">  
      
    </span>
- <span style="font-size: 14pt;">In the “Create Database” section, click on “Advanced mode”</span>

<span style="font-size: 14.0pt; line-height: 107%;">Fill in:</span>

<span style="font-size: 14.0pt; line-height: 107%; mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">a.<span style="font: 7.0pt 'Times New Roman';">     </span></span></span><span style="font-size: 14.0pt; line-height: 107%;">Database Name <span style="mso-spacerun: yes;"> </span>*(example: projectdb)*</span>

<span style="font-size: 14.0pt; line-height: 107%; mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">b.<span style="font: 7.0pt 'Times New Roman';">    </span></span></span><span style="font-size: 14.0pt; line-height: 107%;">User name *(can be the same as DB name)*</span>

<span style="font-size: 14.0pt; line-height: 107%; mso-bidi-font-family: Aptos; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">c.<span style="font: 7.0pt 'Times New Roman';">     </span></span></span><span style="font-size: 14.0pt; line-height: 107%;">Password *(generate or enter your own)*</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/nyVimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/nyVimage.png)

<span style="font-size: 14.0pt; line-height: 107%;">  
  
</span>

- <span style="font-size: 14.0pt; line-height: 107%;">After creation, you will get a confirmation like the following (record these info)</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/YqAimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/YqAimage.png)

- <span style="font-size: 14.0pt; line-height: 107%;">To access the Database, you can use phpMyAdmin, you can access it either from the same page where you created the Database (top right)</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/R7Vimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/R7Vimage.png)

<span style="font-size: 14.0pt; line-height: 107%;">  
  
or you can access phpMyAdmin from the left menu:</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/1Loimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/1Loimage.png)

<span style="font-size: 14.0pt; line-height: 107%; mso-no-proof: yes;">  
</span>

<span style="font-size: 14.0pt; line-height: 107%;"> </span>

<span style="font-size: 14.0pt; line-height: 107%;">In the phpMyAdmin page, click on your newly created Database</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/Tcaimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/Tcaimage.png)

- <span style="font-size: 14.0pt; line-height: 107%;">You can create a table either using the “Create new table” wizard </span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/am4image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/am4image.png)

<span style="font-size: 14.0pt; line-height: 107%; mso-no-proof: yes;">  
</span>

<span style="font-size: 14.0pt; line-height: 107%;">Then define your fields/columns (as shown in the image below as an example)</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/oC6image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/oC6image.png)

<span style="font-size: 14.0pt; line-height: 107%; mso-no-proof: yes;">  
</span>

<span style="font-size: 14.0pt; line-height: 107%;">Or you can create it using SQL command (the recommended method):</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/1tzimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/1tzimage.png)

<span style="font-size: 14.0pt; line-height: 107%; mso-no-proof: yes;">  
</span>

<span style="font-size: 14.0pt; line-height: 107%;"> </span><span style="font-size: 14.0pt; line-height: 107%;">Please refer to the following sites for additional information about SQL:</span>

<span style="font-size: 14.0pt; line-height: 107%; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';">        </span></span></span><span style="font-size: 14.0pt; line-height: 107%;">[https://www.datacamp.com/tutorial/my-sql-tutorial](https://www.datacamp.com/tutorial/my-sql-tutorial)</span>

<span style="font-size: 14.0pt; line-height: 107%; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';">        </span></span></span><span style="font-size: 14.0pt; line-height: 107%;">[https://www.w3schools.com/MySQL](https://www.w3schools.com/MySQL)</span>

<span style="font-size: 14.0pt; line-height: 107%; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt 'Times New Roman';">        </span></span></span><span style="font-size: 14.0pt; line-height: 107%;">[https://www.mysqltutorial.org](https://www.mysqltutorial.org)</span>

<span style="font-size: 14.0pt; line-height: 107%;"></span>

# MyWeb Tutorials: Create PHP/DB application

<span style="font-size: 12.0pt; line-height: 107%;">This tutorial shows how to:</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Create a PHP file</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Connect to a database</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Display table contents</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Add **Create, Read, Update, Delete (CRUD)** functionality</span>

##### **<span style="font-size: 12.0pt; line-height: 107%;">Create a PHP File</span>**

1. <span style="font-size: 12.0pt; line-height: 107%;">Log in to **MyWeb (DirectAdmin)**</span>
2. <span style="font-size: 12.0pt; line-height: 107%;">Open **File Manager**</span>
3. <span style="font-size: 12.0pt; line-height: 107%;">Go to:</span>
4. <span style="font-size: 12.0pt; line-height: 107%;">public\_html</span>
5. <span style="font-size: 12.0pt; line-height: 107%;">Create a new file called:</span>
6. <span style="font-size: 12.0pt; line-height: 107%;">people.php</span>
7. <span style="font-size: 12.0pt; line-height: 107%;">Edit the file</span>

##### **<span style="font-size: 12.0pt; line-height: 107%;">Database Table Used</span>**

<span style="font-size: 12.0pt; line-height: 107%;">We assume the following table already exists: *(refer to this [tutorial ](https://help.cs.uwindsor.ca/books/cs-help/page/myweb-tutorials-database-creation "MyWeb Tutorials: Database Creation")in case you dont have this table)*</span>

```mysql
Persons
--------------------------------
PersonID   INT (Primary Key)
LastName   VARCHAR(255)
FirstName  VARCHAR(255)
Address    VARCHAR(255)
City       VARCHAR(255)

```

##### **<span style="font-size: 12.0pt; line-height: 107%;">Database Connection</span>**

<span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">At the **top** of people.php, add:</span>

```php
<?php
$host = "localhost";
$db   = "testproj1_myDB";
$user = "testproj1_myDB";
$pass = "myPassword";

$conn = new mysqli($host, $user, $pass, $db);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

```

<span style="font-size: 12.0pt; line-height: 107%;">Replace the database credentials with your own.</span>

##### **<span style="font-size: 12.0pt; line-height: 107%;">Display Table Contents (READ)</span>**

<span style="font-size: 12.0pt; line-height: 107%;">Add this **below the connection code**:</span>

```php
<h2>People List</h2>

<table border="1" cellpadding="5">
<tr>
    <th>ID</th>
    <th>First Name</th>
    <th>Last Name</th>
    <th>Address</th>
    <th>City</th>
    <th>Actions</th>
</tr>

<?php
$result = $conn->query("SELECT * FROM Persons");

while ($row = $result->fetch_assoc()) {
    echo "<tr>";
    echo "<td>{$row['PersonID']}</td>";
    echo "<td>{$row['FirstName']}</td>";
    echo "<td>{$row['LastName']}</td>";
    echo "<td>{$row['Address']}</td>";
    echo "<td>{$row['City']}</td>";
    echo "<td>
        <form method='post' style='display:inline;'>
            <input type='hidden' name='delete_id' value='{$row['PersonID']}'>
            <input type='submit' value='Delete'
                   onclick=\"return confirm('Delete this record?');\">
        </form>
      </td>";
    echo "</tr>";
}
?>
</table>

```

##### **<span style="font-size: 12.0pt; line-height: 107%;">Add New Records (CREATE)</span>**

<span style="font-size: 12.0pt; line-height: 107%;">Add this **above the table**:</span>

```php
<form method="post">
    <label>Person ID:</label><br>
    <input type="number" name="personid" required><br><br>

    <label>First Name:</label><br>
    <input type="text" name="firstname" required><br><br>

    <label>Last Name:</label><br>
    <input type="text" name="lastname" required><br><br>

    <label>Address:</label><br>
    <input type="text" name="address"><br><br>

    <label>City:</label><br>
    <input type="text" name="city"><br><br>

    <input type="submit" name="add" value="Add Person">
</form>
```

<span style="font-size: 12.0pt; line-height: 107%;">Then add this PHP logic **near the top of the file**:</span>

```php
if (isset($_POST['add'])) {
    $stmt = $conn->prepare(
        "INSERT INTO Persons (PersonID, FirstName, LastName, Address, City)
         VALUES (?, ?, ?, ?, ?)"
    );

    $stmt->bind_param(
        "issss",
        $_POST['personid'],
        $_POST['firstname'],
        $_POST['lastname'],
        $_POST['address'],
        $_POST['city']
    );

    $stmt->execute();
    $stmt->close();

    header("Location: people.php");
    exit;
}
```

##### **<span style="font-size: 12.0pt; line-height: 107%;">Delete Records (DELETE)</span>**

<span style="font-size: 12.0pt; line-height: 107%;">Add this **near the top**:</span>

```php
if (isset($_POST['delete_id'])) {
    $id = (int) $_POST['delete_id'];

    $stmt = $conn->prepare("DELETE FROM Persons WHERE PersonID = ?");
    $stmt->bind_param("i", $id);
    $stmt->execute();
    $stmt->close();

    header("Location: people.php");
    exit;
}
```

<span style="font-size: 12.0pt; line-height: 107%;">Now clicking **Delete** removes a record.</span>

##### **<span style="font-size: 12.0pt; line-height: 107%;">Full people.php file</span>**

```php
<?php
/**
 * Simple PHP CRUD Example
 * Table: Persons
 *
 * Columns:
 *  - PersonID (INT, Primary Key, Auto Increment)
 *  - FirstName (VARCHAR)
 *  - LastName  (VARCHAR)
 *  - Address   (VARCHAR)
 *  - City      (VARCHAR)
 */

/* ===============================
   Database Configuration
   =============================== */
$host = "localhost";
$db   = "testproj1_myDB";
$user = "testproj1_myDB";
$pass = "myPassword";

/* ===============================
   Database Connection
   =============================== */
$conn = new mysqli($host, $user, $pass, $db);

if ($conn->connect_error) {
    die("Database connection failed: " . $conn->connect_error);
}

/* ===============================
   CREATE (Add New Record)
   =============================== */
if (isset($_POST['add'])) {
    $stmt = $conn->prepare(
        "INSERT INTO Persons (PersonID, FirstName, LastName, Address, City)
         VALUES (?, ?, ?, ?, ?)"
    );

    $stmt->bind_param(
        "issss",
        $_POST['personid'],
        $_POST['firstname'],
        $_POST['lastname'],
        $_POST['address'],
        $_POST['city']
    );

    $stmt->execute();
    $stmt->close();

    header("Location: people.php");
    exit;
}


/* ===============================
   DELETE (Remove Record)
   =============================== */
if (isset($_POST['delete_id'])) {
    $id = (int) $_POST['delete_id'];

    $stmt = $conn->prepare("DELETE FROM Persons WHERE PersonID = ?");
    $stmt->bind_param("i", $id);
    $stmt->execute();
    $stmt->close();

    header("Location: people.php");
    exit;
}

?>


<html>
<head>
    <meta charset="UTF-8">
    <title>People CRUD Example</title>
</head>
<body>

<h1>People Database</h1>

<!-- ===============================
     CREATE FORM
     =============================== -->
<h2>Add New Person</h2>

<form method="post">
    <label>Person ID:</label><br>
    <input type="number" name="personid" required><br><br>

    <label>First Name:</label><br>
    <input type="text" name="firstname" required><br><br>

    <label>Last Name:</label><br>
    <input type="text" name="lastname" required><br><br>

    <label>Address:</label><br>
    <input type="text" name="address"><br><br>

    <label>City:</label><br>
    <input type="text" name="city"><br><br>

    <input type="submit" name="add" value="Add Person">
</form>

<hr>

<!-- ===============================
     READ (Display Records)
     =============================== -->
<h2>People List</h2>

<table border="1" cellpadding="6" cellspacing="0">
    <tr>
        <th>ID</th>
        <th>First Name</th>
        <th>Last Name</th>
        <th>Address</th>
        <th>City</th>
        <th>Action</th>
    </tr>

<?php
$result = $conn->query("SELECT * FROM Persons");

while ($row = $result->fetch_assoc()) {
    echo "<tr>";
    echo "<td>{$row['PersonID']}</td>";
    echo "<td>{$row['FirstName']}</td>";
    echo "<td>{$row['LastName']}</td>";
    echo "<td>{$row['Address']}</td>";
    echo "<td>{$row['City']}</td>";
    echo "<td>
        <form method='post' style='display:inline;'>
            <input type='hidden' name='delete_id' value='{$row['PersonID']}'>
            <input type='submit' value='Delete'
                   onclick=\"return confirm('Delete this record?');\">
        </form>
      </td>";
    echo "</tr>";
}
?>

</table>

</body>
</html>

```

**<span style="font-size: 12.0pt; line-height: 107%;">File Location Reminder</span>**

<span style="font-size: 12.0pt; line-height: 107%;">File must be in:</span>

<span style="font-size: 12.0pt; line-height: 107%;"><code>public&#95;html&#47;people&#46;php</code>  
</span>

<span style="font-size: 12.0pt; line-height: 107%;">Access it via:</span>

<span style="font-size: 12.0pt; line-height: 107%;">[https://yourname.myweb.cs.uwindsor.ca/people.php](https://yourname.myweb.cs.uwindsor.ca/people.php)  
</span>

##### **<span style="text-decoration: underline;">Errors and Logs</span>**

During building of your PHP application, you may need to view the errors either on the webpage or via the log.

To view errors on your PHP page, add the following at the top of your PHP file:

```php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
```

Put them **before any other PHP code**.

Once fixed, **remove** the debug lines.

  
Or you can access the log file from "Site Summary/Statistics/Logs"

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/A6Kimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/A6Kimage.png)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/dN9image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/dN9image.png)

##### **<span style="font-size: 12.0pt; line-height: 107%;"><span style="mso-spacerun: yes;"> </span>Summary</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">PHP files go in **public\_html**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Use PHP + MySQLi to access databases</span>
- <span style="font-size: 12.0pt; line-height: 107%;">CRUD means:</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Create</span>**<span style="font-size: 12.0pt; line-height: 107%;"> – Insert records</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Read</span>**<span style="font-size: 12.0pt; line-height: 107%;"> – Display records</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Update</span>**<span style="font-size: 12.0pt; line-height: 107%;"> – Modify records</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Delete</span>**<span style="font-size: 12.0pt; line-height: 107%;"> – Remove records</span>


</body></html>

# MyWeb Tutorials: Git (Version Control)

**<span style="font-size: 12.0pt; line-height: 107%;">Recommended Workflow (Read First)</span>**

<span style="font-size: 12.0pt; line-height: 107%;">If you are planning to use GIT, then you need to consider our GitLab server is the source of truth for your website code. You should write and edit your code locally on your own computer using any editor or IDE (such as VS Code). Your local project must be connected to gitlab.cs.uwindsor.ca, where you commit and push your changes. Once your code is pushed to GitLab, you then log in to MyWeb (DirectAdmin) and use Fetch followed by Deploy to publish the latest version of your code to the web server. **<u>Do not</u>**<u> edit files directly in MyWeb</u> using File Manager or FTP after Git is enabled, as those changes will be overwritten on the next deploy.</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>**<u><span style="font-size: 12.0pt; line-height: 107%;">Summary of Workflow:</span></u>**

- <span style="font-size: 12.0pt; line-height: 107%;">Edit locally on your computer</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Commit &amp; push to GitLab</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Fetch &amp; Deploy to MyWeb</span>

**<span style="font-size: 12.0pt; line-height: 107%;">First-Time Setup (Do Once)</span>**

1. <span style="font-size: 12.0pt; line-height: 107%;">Create an SSH key on the student’s local computer</span>
2. <span style="font-size: 12.0pt; line-height: 107%;">Add the local SSH key to GitLab (gitlab.cs.uwindsor.ca)</span>
3. <span style="font-size: 12.0pt; line-height: 107%;">Configure your IDE (e.g., VS Code) to use GitLab</span>
4. <span style="font-size: 12.0pt; line-height: 107%;">Create a new project on GitLab and copy the SSH remote URL</span>
5. <span style="font-size: 12.0pt; line-height: 107%;">Initialize the local project and connect it to the GitLab repository</span>
6. <span style="font-size: 12.0pt; line-height: 107%;">If code already exists on MyWeb, import it into the local project</span>
7. <span style="font-size: 12.0pt; line-height: 107%;">Commit and push the initial codebase to GitLab</span>
8. <span style="font-size: 12.0pt; line-height: 107%;">Create a separate SSH key in MyWeb (DirectAdmin) for deployment</span>
9. <span style="font-size: 12.0pt; line-height: 107%;">Add the MyWeb public SSH key to GitLab</span>
10. <span style="font-size: 12.0pt; line-height: 107%;">Initialize and connect the Git repository in MyWeb</span>
11. <span style="font-size: 12.0pt; line-height: 107%;">Perform the first Fetch and Deploy from GitLab to MyWeb</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

**<span style="font-size: 12.0pt; line-height: 107%;">Daily / Ongoing Workflow</span>**

1. <span style="font-size: 12.0pt; line-height: 107%;">Edit code locally on the student’s computer</span>
2. <span style="font-size: 12.0pt; line-height: 107%;">Commit and push changes to GitLab</span>
3. <span style="font-size: 12.0pt; line-height: 107%;">Log in to MyWeb (DirectAdmin)</span>
4. <span style="font-size: 12.0pt; line-height: 107%;">Fetch updates from GitLab</span>
5. <span style="font-size: 12.0pt; line-height: 107%;">Deploy the latest code to the website</span>

---

##### **<u><span style="font-size: 12.0pt; line-height: 107%;">1. Create an SSH key on the student’s local computer</span></u>**

- <span style="font-size: 12.0pt; line-height: 107%;">SSH keys are used to connect your computer to GitLab securely</span>
- <span style="font-size: 12.0pt; line-height: 107%;">If you already have an SSH key, you **may reuse it**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">For simplicity and clarity, it is **recommended to create a new SSH key specifically for GitLab**</span>

**<span style="font-size: 12.0pt; line-height: 107%;">Windows (Windows Terminal / PowerShell / Git Bash)</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Open **Windows Terminal**, **PowerShell**, or **Git Bash**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Generate a new SSH key:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">ssh-keygen -t ed25519 -C "yourusername@gitlab.cs.uwindsor.ca"</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">When prompted:</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">File location</span>**<span style="font-size: 12.0pt; line-height: 107%;">: press **Enter** to accept default  
    (or use gitlab\_cs if you want a dedicated key)</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Passphrase</span>**<span style="font-size: 12.0pt; line-height: 107%;">: optional (press Enter to skip)</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Start the SSH agent:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">eval "$(ssh-agent -s)"</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">Add the key to the agent:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">ssh-add ~/.ssh/id_ed25519</span>`

<span style="font-size: 12.0pt; line-height: 107%;">(or the filename you chose)</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

**<span style="font-size: 12.0pt; line-height: 107%;">macOS / Linux</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Open **Terminal**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Generate a new SSH key:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">ssh-keygen -t ed25519 -C "yourusername@gitlab.cs.uwindsor.ca"</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">When prompted:</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">File location</span>**<span style="font-size: 12.0pt; line-height: 107%;">: press **Enter** to accept default</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Passphrase</span>**<span style="font-size: 12.0pt; line-height: 107%;">: optional (press Enter to skip)</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Start the SSH agent:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">eval "$(ssh-agent -s)"</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">Add the key to the agent:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">ssh-add ~/.ssh/id_ed25519</span>`

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

**<span style="font-size: 12.0pt; line-height: 107%;">Verify the Key Was Created (All Systems)</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">List SSH keys:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">ls ~/.ssh</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">You should see:</span>
- <span style="font-size: 12.0pt; line-height: 107%;">id\_ed25519</span>
- <span style="font-size: 12.0pt; line-height: 107%;">id\_ed25519.pub</span>

<p class="callout info">**<span style="font-size: 12.0pt; line-height: 107%;">Notes for Students:</span>**</p>

- <span style="font-size: 12.0pt; line-height: 107%;">.pub file = **public key** (safe to share)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">non-.pub file = **private key** (never share)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Public key will be added to **GitLab** in the next step</span>
- <span style="font-size: 12.0pt; line-height: 107%;">You do **not** need to repeat this step unless you change computers</span>

---

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

##### **<u><span style="font-size: 12.0pt; line-height: 107%;">2. Add the SSH Key to GitLab (gitlab.cs.uwindsor.ca)</span></u>**

- <span style="font-size: 12.0pt; line-height: 107%;">Open **GitLab** in your browser:</span>
- <span style="font-size: 12.0pt; line-height: 107%;">[https://gitlab.cs.uwindsor.ca](https://gitlab.cs.uwindsor.ca) </span>
- <span style="font-size: 12.0pt; line-height: 107%;">Log in with your CS credentials</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Open **User Preferences**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Go to **SSH Keys**</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/dz9image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/dz9image.png)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/cDCimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/cDCimage.png)

**<span style="font-size: 12.0pt; line-height: 107%;">Copy Your Public Key (from your computer)</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Display the public key:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">cat ~/.ssh/id_ed25519.pub</span>`

*<span style="font-size: 12.0pt; line-height: 107%;">(If you used a different filename, replace id\_ed25519 accordingly.)</span>*

- <span style="font-size: 12.0pt; line-height: 107%;">Select and copy the **entire output** (starts with ssh-ed25519)</span>

**<span style="font-size: 12.0pt; line-height: 107%;">Add the Key in GitLab</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Paste the key into the **Key** field</span>
- <span style="font-size: 12.0pt; line-height: 107%;">(Optional) Set a descriptive **Title** (e.g., Laptop – CS GitLab)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click **Add key** </span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/4fqimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/4fqimage.png)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/vgiimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/vgiimage.png)

**<span style="font-size: 12.0pt; line-height: 107%;">Quick Verification (Optional but Recommended)</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Test the SSH connection:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">ssh -T git@gitlab.cs.uwindsor.ca</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">You should see a success message indicating authentication worked</span>

<p class="callout info">**<span style="font-size: 12.0pt; line-height: 107%;">Notes for Students</span>**</p>

- <span style="font-size: 12.0pt; line-height: 107%;">You can add **multiple SSH keys** to the same GitLab account (one per device)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">This key is for **your local computer only**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Do **not** upload private keys (id\_ed25519)—only the .pub file</span>

---

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

##### **<u><span style="font-size: 12.0pt; line-height: 107%;">3. Configure Your IDE (VS Code) to Use GitLab</span></u>**

- <span style="font-size: 12.0pt; line-height: 107%;">Install **[Visual Studio Code](https://code.visualstudio.com/download)** if it is not already installed</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Ensure **[Git](https://git-scm.com/install/)** is installed on your system and available in your terminal</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Open **VS Code**</span>

**<span style="font-size: 12.0pt; line-height: 107%;">Verify Git Is Detected by VS Code</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Open the integrated terminal in VS Code:</span>
- <span style="font-size: 12.0pt; line-height: 107%;">View → Terminal</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Check Git availability:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">git --version</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">If Git is detected, VS Code will automatically enable source control features</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

**<span style="font-size: 12.0pt; line-height: 107%;">Configure VS Code to Use Your SSH Key</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Ensure the SSH agent is running (from earlier step)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Confirm your SSH key is loaded:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">ssh-add -l</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">You should see your id\_ed25519 (or chosen key name)</span>

<span style="font-size: 12.0pt; line-height: 107%;">VS Code uses the system SSH configuration automatically—**no extra setup is required** if SSH works in the terminal.</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

**<span style="font-size: 12.0pt; line-height: 107%;">(Optional but Recommended) Configure Git Identity</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Set your name and email (used in commits):</span>

`<span style="font-size: 12.0pt; line-height: 107%;">git config --global user.name "Your Full Name"</span>`

`<span style="font-size: 12.0pt; line-height: 107%;">git config --global user.email "yourusername@uwindsor.ca"</span>`

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

**<span style="font-size: 12.0pt; line-height: 107%;">(Optional) Test GitLab Access from VS Code</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">From the VS Code terminal, test SSH:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">ssh -T git@gitlab.cs.uwindsor.ca</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">A success message confirms VS Code can authenticate with **GitLab**</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

<p class="callout info">**<span style="font-size: 12.0pt; line-height: 107%;">Notes for Students</span>**</p>

- <span style="font-size: 12.0pt; line-height: 107%;">VS Code does **not** store your SSH key; it uses the system SSH agent</span>
- <span style="font-size: 12.0pt; line-height: 107%;">If Git works in the terminal, it will work in VS Code</span>
- <span style="font-size: 12.0pt; line-height: 107%;">You only need to do this setup **once per computer**</span>

---

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

##### **<u><span style="font-size: 12.0pt; line-height: 107%;">4. Create a Project on GitLab and Get the SSH Remote URL</span></u>**

- <span style="font-size: 12.0pt; line-height: 107%;">Open **GitLab** in your browser:</span>
- <span style="font-size: 12.0pt; line-height: 107%;">[https://gitlab.cs.uwindsor.ca](https://gitlab.cs.uwindsor.ca) </span>
- <span style="font-size: 12.0pt; line-height: 107%;">Log in with your CS credentials</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click **New Project**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Choose **Create blank project**</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/Thzimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/Thzimage.png)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/uw9image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/uw9image.png)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/YIWimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/YIWimage.png)

**<span style="font-size: 12.0pt; line-height: 107%;">Project Setup</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Enter a **Project name** (e.g., myweb-project)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Leave **Visibility** as default (Private)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click **Create project**</span>

<div align="center" class="MsoNormal" id="bkmrk--11" style="text-align: center;">  
</div>**<span style="font-size: 12.0pt; line-height: 107%;">Get the SSH Remote URL</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">After the project is created, open the project page</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click **Code** (or **Clone**)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Select **SSH**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Copy the SSH URL, which looks like:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">git@gitlab.cs.uwindsor.ca:yourusername/myweb-project.git</span>`

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/d6yimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/d6yimage.png)

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

<p class="callout info">**<span style="font-size: 12.0pt; line-height: 107%;">Notes for Students</span>**</p>

- **<span style="font-size: 12.0pt; line-height: 107%;">Always use the SSH URL</span>**<span style="font-size: 12.0pt; line-height: 107%;">, not HTTPS</span>
- <span style="font-size: 12.0pt; line-height: 107%;">This URL will be used to connect:</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Your **local project**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Your **MyWeb deployment**</span>

- <span style="font-size: 12.0pt; line-height: 107%;">You only create the GitLab project **once**</span>

---

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

##### **<u><span style="font-size: 12.0pt; line-height: 107%;">5. Initialize the Local Project and Push Code to GitLab</span></u>**

<span style="font-size: 12.0pt; line-height: 107%;">This step connects your **local code** to the **GitLab repository** you just created.</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

**<span style="font-size: 12.0pt; line-height: 107%;">If You Are Starting with New Code (No Existing MyWeb Files)</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Open a terminal **inside your project folder**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Initialize Git:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">git init</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">Add the GitLab remote (use the SSH URL you copied):</span>

`<span style="font-size: 12.0pt; line-height: 107%;">git remote add origin git@gitlab.cs.uwindsor.ca:yourusername/myweb-project.git</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">Add all files:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">git add .</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">Commit the initial version:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">git commit -m "Initial commit"</span>`

- <span style="font-size: 12.0pt; line-height: 107%;">Push to GitLab:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">git branch -M main</span>`

`<span style="font-size: 12.0pt; line-height: 107%;">git push -u origin main</span>`

<div align="center" class="MsoNormal" id="bkmrk--14" style="text-align: center;">  
</div>**<span style="font-size: 12.0pt; line-height: 107%;">If Code Already Exists on MyWeb (Common Case)</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">First, make sure your local project folder contains the files from **MyWeb (public\_html)**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Download them from MyWeb (zip or File Manager)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Or copy them manually</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Then, inside that folder:</span>

`<span style="font-size: 12.0pt; line-height: 107%;">git init</span>`

`<span style="font-size: 12.0pt; line-height: 107%;">git remote add origin git@gitlab.cs.uwindsor.ca:yourusername/myweb-project.git</span>`

`<span style="font-size: 12.0pt; line-height: 107%;">git add .</span>`

`<span style="font-size: 12.0pt; line-height: 107%;">git commit -m "Initial import from MyWeb"</span>`

`<span style="font-size: 12.0pt; line-height: 107%;">git branch -M main</span>`

`<span style="font-size: 12.0pt; line-height: 107%;">git push -u origin main</span>`

<span style="font-size: 12.0pt; line-height: 107%; font-family: 'Segoe UI Symbol',sans-serif; mso-bidi-font-family: 'Segoe UI Symbol';">✔</span><span style="font-size: 12.0pt; line-height: 107%;"> GitLab now contains the full website code  
</span><span style="font-size: 12.0pt; line-height: 107%; font-family: 'Segoe UI Symbol',sans-serif; mso-bidi-font-family: 'Segoe UI Symbol';">✔</span><span style="font-size: 12.0pt; line-height: 107%;"> GitLab becomes the **source of truth**</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

<p class="callout info">**<span style="font-size: 12.0pt; line-height: 107%;">Notes for Students</span>**</p>

- <span style="font-size: 12.0pt; line-height: 107%;">This initialization happens **once**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">After this step:</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Do **not** treat MyWeb as the main copy</span>
- <span style="font-size: 12.0pt; line-height: 107%;">All future changes start locally</span>


---

<span style="font-size: 12.0pt; line-height: 107%;"> </span><span style="font-size: 12.0pt; line-height: 107%;"> </span>

##### **<u><span style="font-size: 12.0pt; line-height: 107%;">6. Create a Deployment SSH Key in MyWeb (DirectAdmin)</span></u>**

<span style="font-size: 12.0pt; line-height: 107%;">This key is used **only by MyWeb** to fetch and deploy code from GitLab.  
It is **separate** from the SSH key on your local computer.</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Log in to **MyWeb (DirectAdmin)**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Go to **Advanced features** → **SSH Keys**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click **Create Key**</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/L4yimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/L4yimage.png)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/hTSimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/hTSimage.png)

**<span style="font-size: 12.0pt; line-height: 107%;">Fill in the fields</span>**

- **<span style="font-size: 12.0pt; line-height: 107%;">Key ID</span>**<span style="font-size: 12.0pt; line-height: 107%;">: gitlab (or any short name)</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Authorize</span>**<span style="font-size: 12.0pt; line-height: 107%;">: </span><span style="font-size: 12.0pt; line-height: 107%; font-family: 'Segoe UI Symbol',sans-serif; mso-bidi-font-family: 'Segoe UI Symbol';">✔</span><span style="font-size: 12.0pt; line-height: 107%;"> checked</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Comment</span>**<span style="font-size: 12.0pt; line-height: 107%;">: yourusername@gitlab.cs.uwindsor.ca</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Key Size</span>**<span style="font-size: 12.0pt; line-height: 107%;">: 2048</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Password</span>**<span style="font-size: 12.0pt; line-height: 107%;">: leave **empty**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click **Create**</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/OxYimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/OxYimage.png)

**<span style="font-size: 12.0pt; line-height: 107%;">Copy the Public Key</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">After creation, copy the **public key** (the .pub content)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">You will add this key to **GitLab** in the next step</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/qBcimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/qBcimage.png)

*To copy the public key, right click on \*.pub file and open/edit it and copy the full content (to be used in step 7 below)*

<p class="callout info">**<span style="font-size: 12.0pt; line-height: 107%;">Notes for Students</span>**</p>

- <span style="font-size: 12.0pt; line-height: 107%;">This key stays on the **server**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Do **not** download or reuse it on your computer</span>
- <span style="font-size: 12.0pt; line-height: 107%;">One MyWeb key can be reused for multiple repositories</span>

---

<span style="font-size: 12.0pt; line-height: 107%;"> </span><span style="font-size: 12.0pt; line-height: 107%;"> </span>

##### **<u><span style="font-size: 12.0pt; line-height: 107%;">7. Add the MyWeb SSH Key to GitLab</span></u>**

<span style="font-size: 12.0pt; line-height: 107%;">This step authorizes **MyWeb** to access your GitLab repository for **Fetch** and **Deploy**.</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Open **GitLab** in your browser:</span>
- <span style="font-size: 12.0pt; line-height: 107%;">[https://gitlab.cs.uwindsor.ca](https://gitlab.cs.uwindsor.ca) </span>
- <span style="font-size: 12.0pt; line-height: 107%;">Log in with your CS credentials</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Go to **User Preferences**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Select **SSH Keys**</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/HaCimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/HaCimage.png)

**<span style="font-size: 12.0pt; line-height: 107%;">Add the MyWeb Public Key</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Paste the **public SSH key** you copied from **MyWeb**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Set a clear **Title** (e.g., MyWeb Deployment Key)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click **Add key**</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/l4timage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/l4timage.png)

<p class="callout info">**<span style="font-size: 12.0pt; line-height: 107%;">Notes for Students</span>**</p>

- <span style="font-size: 12.0pt; line-height: 107%;">This key is **server-side only** (deployment)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">It is **different** from your local computer’s SSH key</span>
- <span style="font-size: 12.0pt; line-height: 107%;">GitLab allows **multiple SSH keys** per account</span>

---

<span style="font-size: 12.0pt; line-height: 107%;"> </span><span style="font-size: 12.0pt; line-height: 107%;"> </span>

##### **<u><span style="font-size: 12.0pt; line-height: 107%;">8. Initialize and Connect the Repository in MyWeb (DirectAdmin)</span></u>**

<span style="font-size: 12.0pt; line-height: 107%;">This step links **MyWeb** to your **GitLab repository** so it can deploy your code.</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Log in to **MyWeb (DirectAdmin)**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Go to **Advanced Features -&gt; Git**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click **Create Repository**</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/OqZimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/OqZimage.png)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/cR1image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/cR1image.png)

**<span style="font-size: 12.0pt; line-height: 107%;">Fill in the Repository Details</span>**

- **<span style="font-size: 12.0pt; line-height: 107%;">Domain</span>**<span style="font-size: 12.0pt; line-height: 107%;">: select your MyWeb domain (auto-filled)</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Name</span>**<span style="font-size: 12.0pt; line-height: 107%;">: any label (e.g., myweb-site)</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Remote</span>**<span style="font-size: 12.0pt; line-height: 107%;">: paste the **SSH URL** of your GitLab repository</span>
    - <span style="font-size: 12.0pt; line-height: 107%;">git@gitlab.cs.uwindsor.ca:yourusername/myweb-project.git</span>
- **<span style="font-size: 12.0pt; line-height: 107%;">Keyfile</span>**<span style="font-size: 12.0pt; line-height: 107%;">: select or enter the path to the private key created in MyWeb</span>
    - <span style="font-size: 12.0pt; line-height: 107%;">.ssh/gitlab  (the exact file name you have in .ssh folder)</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Click **Create Repository**</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/qltimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/qltimage.png)

**<span style="font-size: 12.0pt; line-height: 107%;">What This Does</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Creates a local Git repository on MyWeb</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Links it to GitLab using SSH</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Prepares MyWeb for deployment (no files are changed yet)</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

<p class="callout info">**<span style="font-size: 12.0pt; line-height: 107%;">Notes for Students</span>**</p>

- <span style="font-size: 12.0pt; line-height: 107%;">Always use the **SSH remote**, not HTTPS</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Do not include full /home/... paths in the Keyfile field</span>
- <span style="font-size: 12.0pt; line-height: 107%;">This setup is done **once per project**</span>

---

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

##### **<u><span style="font-size: 12.0pt; line-height: 107%;">9. Fetch and Deploy the Code to MyWeb</span></u>**

<span style="font-size: 12.0pt; line-height: 107%;">This step publishes your GitLab code to your **MyWeb website**.</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

**<span style="font-size: 12.0pt; line-height: 107%;">Fetch From GitLab</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">In **MyWeb (DirectAdmin)**, go to **Git**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Locate your repository</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click the **three dots (**</span>**<span style="font-size: 12.0pt; line-height: 107%; font-family: 'Cambria Math',serif; mso-bidi-font-family: 'Cambria Math';">⋯</span><span style="font-size: 12.0pt; line-height: 107%;">)</span>**<span style="font-size: 12.0pt; line-height: 107%;"> next to it</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click **Fetch**</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/bELimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/bELimage.png)

**<span style="font-size: 12.0pt; line-height: 107%;">What Fetch does:</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Connects to GitLab</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Retrieves the latest commits and branch information</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Does **not** change your website files</span>

**<span style="font-size: 12.0pt; line-height: 107%;">Deploy to MyWeb</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Click the **three dots (**</span>**<span style="font-size: 12.0pt; line-height: 107%; font-family: 'Cambria Math',serif; mso-bidi-font-family: 'Cambria Math';">⋯</span><span style="font-size: 12.0pt; line-height: 107%;">)</span>**<span style="font-size: 12.0pt; line-height: 107%;"> again</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Click **Deploy**</span>

**<span style="font-size: 12.0pt; line-height: 107%;">What Deploy does:</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Checks out the latest commit (usually from main)</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Copies files into:</span>
- <span style="font-size: 12.0pt; line-height: 107%;">public\_html/</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Makes the code live on your website</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

**<span style="font-size: 12.0pt; line-height: 107%;">Verify Deployment</span>**

- <span style="font-size: 12.0pt; line-height: 107%;">Open **File Manager**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Confirm files appear in public\_html</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Visit your website in a browser:</span>
- <span style="font-size: 12.0pt; line-height: 107%;">https://yourproject.myweb.cs.uwindsor.ca/</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

<p class="callout info">**<span style="font-size: 12.0pt; line-height: 107%;">Important Notes for Students</span>**</p>

- <span style="font-size: 12.0pt; line-height: 107%;">Always **Fetch before Deploy**</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Do **not** edit files in File Manager or via FTP after Git is enabled</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Manual changes will be overwritten on the next deploy</span>

<span style="font-size: 12.0pt; line-height: 107%;"> </span>

**<span style="font-size: 12.0pt; line-height: 107%; font-family: 'Segoe UI Emoji',sans-serif; mso-bidi-font-family: 'Segoe UI Emoji';">✅</span><span style="font-size: 12.0pt; line-height: 107%;"> Setup Complete</span>**

<span style="font-size: 12.0pt; line-height: 107%;">You have now:</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Connected your local computer to GitLab</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Connected MyWeb to GitLab</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Deployed your site using Git</span>

---

<p class="callout success">**<span style="font-size: 12.0pt; line-height: 107%;">Daily Workflow Reminder</span>**</p>

- <span style="font-size: 12.0pt; line-height: 107%;">Edit code locally</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Commit and push to GitLab</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Fetch and Deploy from MyWeb</span>

<span style="font-size: 12.0pt; line-height: 107%;"></span>

# MyWeb Tutorials: Connect to DB remotely

<span style="font-size: 12.0pt; line-height: 107%;">In addition to accessing your database through phpMyAdmin on MyWeb, you may also connect to your database directly from your own computer using tools such as HeidiSQL, MySQL Workbench, DBeaver, or the MySQL command-line client. Remote database access allows you to manage tables, run queries, and test your applications more easily while developing locally. In this guide, you will learn how to enable remote access to your database on MyWeb (DirectAdmin) and how to configure your database client to connect securely to the server.</span>

- <span style="font-size: 12.0pt; line-height: 107%;">Login to [https://myweb.cs.uwindsor.ca](https://myweb.cs.uwindsor.ca) with your username and password</span>
- <span style="font-size: 12.0pt; line-height: 107%;">From "Account Manager" -&gt; Databases. Select or create the database you want to connect to:  
    </span>  
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-03/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-03/image.png)
- <span style="font-size: 12.0pt; line-height: 107%;">Click on “Manage”  
    </span>
    
      
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-03/scaled-1680-/3g9image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-03/3g9image.png)
    
    <span style="font-size: 12.0pt; line-height: 107%;">  
    </span>
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Select the user you want to connect with, and click on “Manage”  
    </span>  
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-03/scaled-1680-/AEcimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-03/AEcimage.png)
- <span style="font-size: 12.0pt; line-height: 107%;">Scroll down to “Allowed Hosts” and add % in the “Allow access from” and click on “Add Host”  
    </span>
    
      
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-03/scaled-1680-/QNeimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-03/QNeimage.png)
    
    *<span style="font-size: 12.0pt; line-height: 107%;">Note: % means any host</span>*
- <span style="font-size: 12.0pt; line-height: 107%;">That’s it.   
      
    </span>
- <span style="font-size: 12.0pt; line-height: 107%;">Now you can test connecting to the database from your computer (after connecting to [VPN](https://help.cs.uwindsor.ca/books/cs-help/page/vpn "VPN")).  
      
    *Example:*</span>
    
    ```
    Host: myweb.cs.uwindsor.ca
    Port: 3306
    Database: testproj1_myDB
    Username: testproj1_myDB
    Password: <DB password> 
    ```

<span style="font-size: 12.0pt; line-height: 107%;">You can use any client to connect and manage the database from your computer. I recommend HeidiSQL [https://www.heidisql.com/download.php](https://www.heidisql.com/download.php)   
  
</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-03/scaled-1680-/KHMimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-03/KHMimage.png)

# How To

# MyWeb

#### Troubleshooting

**IP blacklisting**

When you try to connect to your myweb.cs.uwindsor.ca management console, you are told your IP has been blacklisted. This is caused by too many failed login attempts within a short period.

To remove your IP from the blacklist, please use the [CS Password Utility](https://auth.cs.uwindsor.ca).

See [Passwords#Additional\_non-password\_related\_functions](https://help.cs.uwindsor.ca/books/cs-help/page/passwords#bkmrk-additional-non-passw "Passwords").

**I can't login to phpMyAdmin**

You must first create a database using MySQL Management in the DirectAdmin web control panel.

<div class="thumb tleft" id="bkmrk-"><div class="thumbinner" style="width: 302px;">[![photo1.jpg](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/photo1.jpg)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/photo1.jpg)</div></div><div class="thumbinner" id="bkmrk--1" style="width: 302px;"></div><div class="thumbinner" id="bkmrk--2" style="width: 302px;"></div>
#### About Hosting

The School of Computer Science offers all faculty, staff, and students (majors or those taking key courses) a virtual hosting environment for Web and Email. Domains created automatically through the CS Password Utility have the name ***userid.myweb.cs.uwindsor.ca***, where *userid* is your UWinID.

The myWeb server is separate from the general desktop servers like Delta. You cannot access your Web files through a secure shell terminal (ssh) connection. Instead, access the files using a file transfer client as described.

You can create a new domain and access the [DirectAdmin Control Panel](https://www.site-helper.com/evo/sitehelper.php) to manage your domain (and sub-domains) by visiting the [CS Password Utility](https://auth.cs.uwindsor.ca). The DirectAdmin control panel can be accessed at [https://www.myweb.cs.uwindsor.ca:2222/evo ](https://www.myweb.cs.uwindsor.ca:2222/evo/)

***<span style="text-decoration: underline;">Note</span>***: if you cannot access the DirectAdmin login page, please try another browser or from Incognito/private mode ([check this article for help](https://www.computerworld.com/article/1719851/how-to-go-incognito-in-chrome-firefox-safari-and-edge.html))

#### Basic DirectAdmin Tour

DirectAdmin is a Web-based control panel that will allow you to manage your Web site(s), email addresses, MySQL databases, and Web applications. You can also manage your files stored on the myweb.cs.uwindsor.ca server with file transfer programs, such as [FileZilla](https://help.cs.uwindsor.ca/books/cs-help/page/filezilla "FileZilla"), and edit your files using editors that support SFTP, such as [Notepad++](https://help.cs.uwindsor.ca/books/cs-help/page/notepad "Notepad++") and [BBEdit](https://www.barebones.com/products/bbedit/ "BBEdit"). Separate videos are provided for that.

##### Multiple Domains

The myWeb server, through the DirectAdmin control panel, allows you to create e-mail addresses in your sub-domains or additional domains. Addresses can be full e-mail mailboxes or forwarded to other mailboxes.

You can access these extra mailboxes using mail clients or the Roundcube Web-based mail program. The only differences are that you need to use the e-mail addresses as the username when connecting, and cloud-based calendars and address books are unavailable. You can create a new mailbox under a domain that you control using DirectAdmin, and learn how to connect to it using Roundcube.

##### Creating FTP accounts

You can create highly customizable FTP accounts to allow other users access to specific parts of your domain. The password for the account can be reset at any time by the owner of the domain or by the user. Once the account has been created and the user is given a password, the user can change the password to something they prefer.

##### File Access

**Notepad++**

[Notepad++](https://help.cs.uwindsor.ca/books/cs-help/page/notepad "Notepad++") can easily access files stored on the myWeb server from your PC. Editing remote files is as easy as editing local ones on your PC.

**BBEdit**

[BBEdit](https://www.barebones.com/products/bbedit/ "BBEdit") is a fantastic text editor for macOS that is available for free through the App Store. For those of you who are familiar with it, TextWrangler is now BBEdit.

BBEdit interfaces with files on the myWeb server with just a couple of clicks.

**Accessing files from a Linux desktop**

It is easy to access your myWeb files from Linux desktops. The best way is to create a bookmark in your Places that will link to your domain's folder on the myWeb server.

Follow these steps:

1. From Places, open your Home Folder
2. In Location, enter **sftp://myweb.cs.uwindsor.ca/domains**, and press Enter
3. Enter your userid and password to establish the connection.

Once the connection is made, you will see the contents of your myWeb domains folder. Your Web files are in sub-folders named public\_html for the corresponding domain.

You can add a bookmark so that this connection is made every time you login to the Linux desktop.


<div class="thumbinner" id="bkmrk--4" style="width: 302px;"></div><div class="thumbinner" id="bkmrk--5" style="width: 302px;"></div><div class="thumbinner" id="bkmrk--6" style="width: 302px;"></div><div class="thumbinner" id="bkmrk--7" style="width: 302px;"></div><div class="thumbinner" id="bkmrk--8" style="width: 302px;"></div><div class="thumbinner" id="bkmrk--9" style="width: 302px;"></div><div class="thumbinner" id="bkmrk--10" style="width: 302px;"></div><div class="thumbinner" id="bkmrk--11" style="width: 302px;"></div><div class="thumbinner" id="bkmrk--12" style="width: 302px;"></div><div class="thumb tleft" id="bkmrk--13"><div class="thumbinner" style="width: 302px;">**"Forbidden" Message**</div></div><div class="thumbinner" id="bkmrk--14" style="width: 302px;">  
</div><div id="bkmrk-if-you-are-getting-a">If you are getting a "Forbidden" message when browsing to your website:</div><div id="bkmrk--15"></div>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-06/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-06/image.png)

<div id="bkmrk-it%27s-either-that-you">It's either that you don't have **index.html** in the main web folder (*public\_html*), or the index file doesn't have the proper permissions. </div>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-06/scaled-1680-/BVfimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-06/BVfimage.png)

# NoMachine

The School of Computer Science runs [NoMachine Terminal Server](https://www.nomachine.com/product&p=NoMachine%20Terminal%20Server).

The client connects to a server named **delta.cs.uwindsor.ca**.

### Remote desktop via a Web Browser 

**[https://nx.cs.uwindsor.ca](https://nx.cs.uwindsor.ca)**

Since the School of Computer Science has a NoMachine Enterprise license, the **delta.cs.uwindsor.ca** remote desktop can be accessed directly from the browser through the link provided!

### <span class="mw-headline" id="bkmrk-nx-%28using-the-nomach-1">NX (using the NoMachine Enterprise Client)</span>

#### <span class="mw-headline" id="bkmrk-using-the-nx-protoco-1">Using the NX protocol (not SSH)</span>

<span class="mw-headline">You can download NoMachine Enterprise Client from [here](https://download.nomachine.com/everybody/).</span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-09/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-09/image.png)

Edit a connection to use the NX protocol

You should use the **NX** protocol, but only if you are connected to the [VPN](https://help.cs.uwindsor.ca/books/cs-help/page/vpn "VPN")!

Edit and save the connection to modify the protocol it uses.

### Troubleshooting


##### **Application Menu is missing** 

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/image.png)

<div class="thumb tleft" id="bkmrk--4"></div>If this menu is missing on your desktop, mate-panel is misbehaving.

Run this command from a terminal window (right-click the background and choose *Open in terminal*):

`mate-panel --replace &`

The ampersand is required to run the command in the background, independently of the terminal process from which you ran it.

# Notepad++

### Download

<table class="plainlinks imbox imbox-style" id="bkmrk-download-for-windows" role="presentation"><tbody><tr><td class="mbox-image">[![windows (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/HMBwindows-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/HMBwindows-custom.png)</td><td class="mbox-text">[Download for Windows](https://notepad-plus-plus.org/downloads/)</td></tr></tbody></table>

The latest version will be at the top of the list. Select it to save and run the appropriate Installer.

#### Using Notepad++

#### SFTP

You will need to install the NppFTP Plugin for Notepad++ to use this protocol.

# SQL*plus ( to Oracle)

### How to use from delta.cs.uwindsor.ca

[![MicrosoftTeams-image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-01/scaled-1680-/microsoftteams-image.png)](https://itfaq.cs.uwindsor.ca/uploads/images/gallery/2024-01/microsoftteams-image.png)

### Troubleshooting

#### Login problems

## <span class="mw-headline" id="bkmrk--2"></span>

Oracle database user accounts and passwords are created, synchronized, or unlocked from the [CS Password Utility](https://auth.cs.uwindsor.ca).

Make sure you are using your UWinID as your &lt;user-name&gt;, all lowercase without @uwindsor.ca appended.

<table class="plainlinks metadata ambox ambox-content" id="bkmrk-if-your-password-doe" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div">![Ambox&#95;important.svg.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-11/ambox-important-svg.png)</div></td><td class="mbox-text"><div class="mbox-text-span">If your password does not meet the following restrictions, you MUST enclose your password in double quotation marks when prompted.</div></td></tr></tbody></table>

The password restrictions for Oracle account passwords are as follows:

- Passwords cannot contain quotation marks.
- Passwords are case sensitive.
- A password must begin with an alphabetic character.
- Passwords can contain only alphanumeric characters and the underscore (\_), dollar sign ($), and pound sign (#).
- Password may NOT contain the @ character.
- Oracle strongly discourages you from using $ and #.

**Common Errors**

```
ERROR:
ORA-01017: invalid username/password; logon denied
```

Your password meets the character requirements, but you typed in the wrong password.

Synchronize your password again using the [CS Password Utiliity](https://cs.uwindsor.ca/password).

```
ERROR:
ORA-12532: TNS:invalid argument
```

Your password contains characters, probably **@**, that require you to enclose it within double quotation marks.

### Running sqlplus from your machine at home

Install Oracle client. Use Global Protect[ VPN ](https://itfaq.cs.uwindsor.ca/books/cs-help/page/vpn)and sign in to campus.

Just type *sqlplus* at a terminal window prompt.

It uses the following tnsnames.ora to establish the connection with the CS01 instance on oracle.cs.uwindsor.ca:

```
CS01 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.cs.uwindsor.ca)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = cs01)
    )
  )
```

# Oracle Using Java and Python from Delta

<div class="mw-body ve-init-mw-desktopArticleTarget-targetContainer" id="bkmrk-%C2%A0-%C2%A0" role="main"><div class="vector-body"><div class="mw-body-content mw-content-ltr" dir="ltr" lang="en-CA">  
</div></div></div>### **Connecting to Oracle server from Delta using jdbc**

#### <span class="mw-headline" id="bkmrk-jdbc-connection-stri-1">JDBC Connection string</span>

In the connection strings below, replace "userid" with your UWinID, and "password" with your campus password.

Code to test your connection:

```
import java.sql.*;
import oracle.jdbc.*;
import oracle.jdbc.pool.OracleDataSource;

class JDBCVersion
{
  public static void main (String args[]) throws SQLException
  {
    OracleDataSource ods = new OracleDataSource();
    ods.setURL("jdbc:oracle:thin:userid/password@oracle.cs.uwindsor.ca:1521:cs01");
    Connection conn = ods.getConnection();

    // Create Oracle DatabaseMetaData object
    DatabaseMetaData meta = conn.getMetaData();

    // gets driver info:
    System.out.println("JDBC driver version is " + meta.getDriverVersion());
  }
}
```

The classpath for the Oracle JDBC archive will vary depending on the operating system and which version of the Oracle client you installed. The classpath in the following commands are those required to compile and run from a terminal on cs.uwindsor.ca.

```
javac -classpath /usr/lib/oracle/12.1/client64/lib/ojdbc7.jar  JDBCVersion.java 
java -classpath /usr/lib/oracle/12.1/client64/lib/ojdbc7.jar:.  JDBCVersion
```

### **Connecting to Oracle server from Delta using Python**

- Create a Python Virtual Environment 
    -  mkdir oraclepy
    -  cd oraclepy/
    -  python -m venv ./venv
- Pip install cx\_oracle 
    - pip install cx\_oracle --upgrade[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-10/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-10/image.png)
- Use the following code db\_config.py 
    
    ```python
    import cx_Oracle
    import sys
    import os
    import getpass
    
    user = os.getlogin()
    
    dsn = os.environ.get("PYTHON_CONNECT_STRING", "oracle.cs.uwindsor.ca/cs01")
    
    pw = os.environ.get("PYTHON_PASSWORD")
    if pw is None:
        pw = getpass.getpass("Enter password for %s: " % user)
    
    
    ```
- Using the following code, you connect to the database 
    
    ```python
    import cx_Oracle
    import db_config
    
    con = cx_Oracle.connect(db_config.user, db_config.pw, db_config.dsn)
    print("Database version:", con.version)
    
    ```
- Run the Code: before running the code, set the environment variables using export [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-10/scaled-1680-/ZsNimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-10/ZsNimage.png)
- Check the following URL for more information: [Tutorial cx\_Oracle](https://github.com/oracle/python-cx_Oracle/tree/main/samples/tutorial)
- You can embed the export variables in shell script and call your Python code from the same script 
    
    ```bash
    export ORACLE_HOME=/opt/oracle/instantclient_21_8
    export LD_LIBRARY_PATH=/opt/oracle/instantclient_21_8:$PATH
    export TNS_ADMIN=/opt/oracle/instantclient_21_8/network/admin/
    ```
- To exit the Python virtual env, type **deactivate** and press enter. you will be back at the Linux prompt

<div class="mw-body ve-init-mw-desktopArticleTarget-targetContainer" id="bkmrk-you-will-also-need-t" role="main"><div class="vector-body" id="bkmrk-you-will-also-need-t-1"><div class="mw-body-content mw-content-ltr" dir="ltr" id="bkmrk-you-will-also-need-t-2" lang="en-CA"><div class="mw-parser-output">  
</div></div></div></div><div id="bkmrk-"><div id="bkmrk--1"><div id="bkmrk--2"><div class="vector-search-box-vue  vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box" id="bkmrk--3" role="search"><div><form action="/mediawiki/index.php" class="vector-search-box-form" id="bkmrk--4"><div class="vector-search-box-inner" data-search-loc="header-navigation" id="bkmrk--5"></div></form></div></div></div></div></div><div id="bkmrk--7"><div id="bkmrk--8" role="banner"></div></div>

# WSL

### <span class="mw-headline" id="bkmrk-windows-subsystem-fo-1">Windows Subsystem for Linux</span>

The Windows Subsystem for Linux (WSL) was introduced by Microsoft to Windows 10. WSL allows users to to run a full Linux user space in Windows. The latest version, WSL 2, is a major upgrade and introduces a Microsoft-written Linux kernel that is delivered by Windows Update instead of being bundled with the Windows OS image.

This guide will show you how to create a working Mate Desktop environment on Debian Buster, similar to our CS Linux Desktop servers available through NoMachine. This will help you learn much more about using and maintaining a Linux environment.

### <span class="mw-headline" id="bkmrk-installing-wsl-1">Installing WSL</span>

<span class="mw-headline">[Windows Subsystem for Linux Installation Guide](https://docs.microsoft.com/en-us/windows/wsl/install-win10)</span>

#### <span class="mw-headline" id="bkmrk-x11-forwarding-1">X11 forwarding</span>

<span class="mw-headline">You can use [Mobaxterm](https://help.cs.uwindsor.ca/books/cs-help/page/mobaxterm "Mobaxterm") to access WSL with X11 enabled. </span>

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-02/scaled-1680-/Xmfimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-02/Xmfimage.png)

<span class="mw-headline">Or your will need to install an X server to run a graphical Linux environment in WSL.</span>

<table class="plainlinks imbox imbox-style" id="bkmrk-download-vcxsrv-for-" role="presentation"><tbody><tr><td class="mbox-image">[![windows (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/HMBwindows-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/HMBwindows-custom.png)</td><td class="mbox-text">[Download VcXsrv for Windows](https://sourceforge.net/projects/vcxsrv/)</td></tr></tbody></table>

<span style="text-decoration: underline;">Notes</span>:

- When installing VcXsrv, Make sure to "Disable access control"  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-02/scaled-1680-/2wGimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-02/2wGimage.png)
- add the following to your `~/.bashrc`:
    
    ```bash
    export DISPLAY=$(ip route list default | awk '{print $3}'):0
    export LIBGL_ALWAYS_INDIRECT=1
    ```
- Add a separate **inbound rule** for **TCP port 6000** to the windows firewall in order to allow WSL access to the X server, as described by the [wsl-windows-toolbar-launcher](https://github.com/cascadium/wsl-windows-toolbar-launcher#firewall-rules).

#### Debian

Microsoft provides an app to install a complete Debian command line environment.

<table class="plainlinks imbox imbox-style" id="bkmrk-get-debian-for-wsl" role="presentation"><tbody><tr><td class="mbox-image">[![linux (Custom).png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/linux-custom.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/linux-custom.png)</td><td class="mbox-text">[Get Debian for WSL](https://wiki.debian.org/InstallingDebianOn/Microsoft/Windows/SubsystemForLinux)</td></tr></tbody></table>

# JetBrains

**Free educational license for all the JetBrains IDEs for Students and Faculty.**

It is a JetBrains initiative, neither the University of Windsor nor the Department of Computer Science have any contractual obligations with JetBrains.

As individual license owners, the students/faculty using the license are responsible for JetBrains' contractual obligations.

You have to <u>renew the license every year.</u>

Please visit the following link for more information.

[https://www.jetbrains.com/community/education/#students](https://www.jetbrains.com/community/education/#students)

[https://www.jetbrains.com/products/](https://www.jetbrains.com/products/)

For C#

Use Rider IDE it is cross platform solution for .Net development.

[https://www.jetbrains.com/rider/features/](https://www.jetbrains.com/rider/features/)

# Gitlab

We have a community edition (Gitlab CE) instance running at [https://gitlab.cs.uwindsor.ca](https://gitlab.cs.uwindsor.ca)

##### What is GitLab?

GitLab is a web-based [Git repository](https://www.simplilearn.com/tutorials/git-tutorial/git-tutorial-for-beginner "Git repository") that provides free open and private repositories, issue-following capabilities, and wikis. It is a complete [DevOps platform](https://www.simplilearn.com/tutorials/devops-tutorial "DevOps platform") that enables professionals to perform all the tasks in a project—from project planning and source code management to monitoring and security. Additionally, it allows teams to collaborate and build better software.

GitLab helps teams reduce product lifecycles and increase productivity, which in turn creates value for customers. The application doesn't require users to manage authorizations for each tool. If permissions are set once, then everyone in the organization has access to every component.

# VS Code

Installed on delta.cs.uwindsor.ca. It will work from home using NoMachine or from any labs. you can install extensions under your own user account.

How to use please look at the picture below.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-02/scaled-1680-/bmqimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-02/bmqimage.png)

##### <span style="text-decoration: underline;">From Windows or Mac</span>

- Launch **VS Code** and click on the "Open Remote Window" icon from the lower left corner.  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/IbSimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/IbSimage.png)
- Click on "Connect to Host"  
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/Qnjimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/Qnjimage.png)
- Choose "Add New SSH Host"  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/0QWimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/0QWimage.png)
- type your username and hostname as [username@hostname](mailto:username@hostname). (*e.g:* [*azakaria@delta.cs.uwindsor.ca*](mailto:azakaria@delta.cs.uwindsor.ca))  
    
     [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/Fisimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/Fisimage.png)
- Select which file you want to use to save the new added hostname (hit enter)  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/LSgimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/LSgimage.png)
- Click on "Connect"  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/JfGimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/JfGimage.png)
- Choose "Linux"  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/V01image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/V01image.png)
- Type in your password  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/xCaimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/xCaimage.png)
- Click on "Open Folder"  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/w6mimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/w6mimage.png)
- Click on "OK"  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/U7Ximage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/U7Ximage.png)
- It may ask you again to select the platform type (Linux) and type in the password
- Trust the authors  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/scaled-1680-/9Odimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/9Odimage.png)

# How to Set Dynamic (DHCP) IP Address - Windows 10/11

##### 1. Access the Control Panel

- Windows 11: In the Windows search bar, type in “ncpa.cpl” and then press enter.  
      
    
    ![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/image.png)
- Windows 10:  
    - On your keyboard, press the “Windows” and “R” keys at the same time.
    - Enter “ncpa.cpl” in the window that pops up.  
          
        
        ![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/m0oimage.png)

##### 2. Select the network adapter

Right click on the network adapter that is currently connected to the device that you are trying to configure. Usually, it will be the adapter with the word “Ethernet” in the name.

![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/8FOimage.png)

##### 3. Select Properties

Select “Properties” from the drop-down menu.

![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/C3timage.png)

##### 4. Select Internet Protocol Version 4 (TCP/IPv4)

Double-click on “Internet Protocol Version 4 (TCP/IPv4)”.

![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/9qOimage.png)

##### 5. Change settings option to DHCP

When you get to the “Internet Protocol Version 4 (TCP/IPv4) Properties” window, click “Obtain an IP address automatically”. This will allow your PC to be assigned a random IP address on your network.

<span style="text-decoration: underline;">Note</span>: The OK buttons must be clicked in both instances or your settings will not be saved.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/KMGimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/KMGimage.png)

<span style="text-decoration: underline;">More Info:</span>

- [Change TCP/IP settings - Microsoft Support](https://support.microsoft.com/en-us/windows/change-tcp-ip-settings-bd0a07af-15f5-cd6a-363f-ca2b6f391ace)

# How to Set Dynamic (DHCP) IP Address - Mac OS

##### 1. Open System Preferences

Click the **Apple** icon, from the **Apple** drop-down list, select **System Preferences**.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/DPNimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/DPNimage.png)

##### 2. Open Network Settings

Click the **Network** icon.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/teBimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/teBimage.png)

##### 3. Select Your Wired Network Interface (Ethernet)

In the left column, select **Ethernet** (for wired connection) or **Wi-Fi**(for wireless connection), then Click the **Advanced**.  
<span style="text-decoration: underline;">Note</span>: in this article we want to change the wired connection, therefore, click on **Ethernet**

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/Yzbimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/Yzbimage.png)

##### 4. Select TCP/IP Protocol

Click **TCP/IP**.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/LJ7image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/LJ7image.png)

##### 5. Configure IPv4

 From the **Configure IPv4** drop-down list, select **Using DHCP**, then click the **OK** button.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/scaled-1680-/fmlimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-05/fmlimage.png)

<span style="text-decoration: underline;">More Info:</span>

- [Use DHCP or a manual IP address on Mac - Apple Support (CA)](https://support.apple.com/en-ca/guide/mac-help/mchlp2718/mac)

# Connecting to the ‘delta.cs.uwindsor.ca’ Server via SSH through Visual Studio Code

> This article was contributed by **Avinash Karhana** (karhanaa@uwindsor.ca). Thank you!

##### <span class="TextRun SCXW81384774 BCX8" data-contrast="none" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8" data-ccp-parastyle="heading 2">Prerequisites</span></span>

1. **<span class="TextRun SCXW81384774 BCX8" data-contrast="auto" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8">\*\*Visual Studio Code (VS </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW81384774 BCX8">Code)\*</span><span class="NormalTextRun SCXW81384774 BCX8">\*</span></span>**<span class="TextRun SCXW81384774 BCX8" data-contrast="auto" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8"> installed. If you </span><span class="NormalTextRun SCXW81384774 BCX8">don't</span><span class="NormalTextRun SCXW81384774 BCX8"> have it, </span><span class="NormalTextRun SCXW81384774 BCX8">download</span><span class="NormalTextRun SCXW81384774 BCX8"> and install it from </span></span>[<span class="TextRun Underlined SCXW81384774 BCX8" data-contrast="auto" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8">https://code.visualstudio.com</span></span>](https://code.visualstudio.com)<span class="TextRun SCXW81384774 BCX8" data-contrast="auto" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8">.</span></span><span class="EOP SCXW81384774 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span>
2. **<span class="TextRun SCXW81384774 BCX8" data-contrast="auto" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8">\*\*Remote - SSH Extension\*\*</span></span>**<span class="TextRun SCXW81384774 BCX8" data-contrast="auto" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8"> for VS Code installed. </span></span><span class="EOP SCXW81384774 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span>
    - <span class="TextRun SCXW81384774 BCX8" data-contrast="auto" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8">You can install it from the Extensions view in VS Code or from </span></span><span class="TextRun Underlined SCXW81384774 BCX8" data-contrast="auto" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8">[https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh)</span></span><span class="TextRun SCXW81384774 BCX8" data-contrast="auto" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8">.</span></span><span class="EOP SCXW81384774 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span>
    - <span class="TextRun SCXW81384774 BCX8" data-contrast="auto" lang="EN-CA" xml:lang="EN-CA"><span class="NormalTextRun SCXW81384774 BCX8"> Or can search in extensions by typing &#96;Remote Development&#96; in the Extensions view in VS Code.</span></span><span class="EOP SCXW81384774 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">   
        ![](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/embedded-image-bvzhxrgr.png)  
        </span>
3. <span class="EOP SCXW81384774 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">**\*\*SSH Client\*\*** installed on your local machine:</span>
    - <span class="EOP SCXW81384774 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">**Windows\*\***: Install Git for Windows which comes with Git Bash. You can download it from <u>[https://gitforwindows.org](https://gitforwindows.org)</u>.</span>
    - <span class="EOP SCXW81384774 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">**\*\*MacOS\*\***: SSH client is pre-installed.</span>
    - <span class="EOP SCXW81384774 BCX8" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">**\*\*Linux\*\***: SSH client is pre-installed.</span>

##### Step-by-Step Guide

1. <span style="text-decoration: underline;">Install the Remote - SSH Extension in VS Code</span>
    - Open VS Code.
    - Go to the Extensions view by clicking the Extensions icon in the Activity Bar on the side of the window.
    - Search for "Remote Development" and install the extensions by Microsoft (As given in previous section).
2. <span style="text-decoration: underline;">Add the SSH Host</span>
    - Open the Remote Explorer tab
    - In the Remote Explorer tab, click the &#96;+&#96; button next to &#96;SSH Targets&#96;.  
        ![](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/embedded-image-pfxreycl.png)
    - In the input dialog that appears, enter: `ssh <a href="mailto:uwinid@delta.cs.uwindsor.ca">uwinid@delta.cs.uwindsor.ca</a>`  
                              *Replace &#96;uwinid&#96; with your actual username, then hit &#96;Enter&#96;.*
        - - - - *If you are connecting to a different server, replace the server in the example above with the current server name, which is delta.cs.uwindsor.ca ( it can be gamma.cs.uwindsor.ca ...)*
    - Choose whether to save the configuration in the &#96;~/.ssh/config&#96; file or just for this session.
3. <span style="text-decoration: underline;">Connect to the Server via VS Code</span>
    - In the Remote Explorer tab, under &#96;SSH Targets&#96;, you should now see &#96;delta.cs.uwindsor.ca&#96;.
    - Click on &#96;delta.cs.uwindsor.ca&#96; to connect.   
        ![](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/embedded-image-mi2orr7m.png)
    - A new VS Code window will open. When prompted, enter your password for the &#96;delta.cs.uwindsor.ca&#96; server.  
        ![](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/embedded-image-zaiap2nn.png)
4. Open a Remote Workspace 
    - Once connected, you can open a folder on the remote server by clicking on &#96;Open Folder&#96; in the Remote Explorer sidebar.   
        ![](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/embedded-image-htpitp3m.png)
    - Navigate to the desired directory on the server and open it.  
        ![](https://help.cs.uwindsor.ca/uploads/images/gallery/2024-07/embedded-image-2d4qehbv.png)
    - If prompted for your password again, enter it to proceed.

#####   
Tips and Troubleshooting

- If you face issues with the host not being live or timeout, make sure you are either on CS Network  WiFi/Ethernet or connected via Global Protect VPN.
- If you encounter connection issues, check the SSH output log in VS Code by clicking on the &#96;View&#96; menu, then &#96;Output&#96;, and selecting &#96;Remote - SSH&#96; from the dropdown.
- Ensure that your user account on the &#96;delta.cs.uwindsor.ca&#96; server is set up to accept SSH connections.
- If you are having connection issues due to invalid credentials, try authenticating them by going to https://auth.cs.uwindsor.ca; this will sync your credentials across all the CS services.
- In case you do not want to enter the password every time you connect to SSH, follow the other guide that helps you to set Key based authentication for SSH.

# Check and clean up large files in your home directory

**Over time, your home directory may grow in size. We recommend regularly checking your disk usage and removing any unnecessary files or folders.**

You can use one of the following methods to check your disk space usage:

- Use **du** command:  
    `du -cha --max-depth=1 . | grep -E "G"`
- Use **ncdu** command:  
    `ncdu`  
    To exit, press on letter x  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-06/scaled-1680-/vtEimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-06/vtEimage.png)

# Graduate Printer

- <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">**<span style="color: rgb(224, 62, 45);">Note</span>:** Printing is only available when connected to [**CSWIFI** ](https://help.cs.uwindsor.ca/books/cs-help/page/cswifi "cswifi")or when using the computers located in the **Graduate Labs (Erie)**.  
      
    </span>
- <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">First, delete the old “GradPrinter” from your computer (if exists)  
    </span>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-10/scaled-1680-/orVimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-10/orVimage.png)
- <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Install PaperCut Print Deploy Client:</span>
    - <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Windows: [https://print.cs.uwindsor.ca:9192/print-deploy/client/windows](https://print.cs.uwindsor.ca:9192/print-deploy/client/windows)</span>
    - <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Mac: [https://print.cs.uwindsor.ca:9192/print-deploy/client/macos](https://print.cs.uwindsor.ca:9192/print-deploy/client/macos)</span>
- <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Login with your UWINID and password (use your username only)  
    </span>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-10/scaled-1680-/5wIimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-10/5wIimage.png)
- <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">If you cannot log in, sync your password using the CS password manager utility at [https://auth.cs.uwindsor.ca](https://auth.cs.uwindsor.ca)</span>
- <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">If you have difficulty, please contact us by email at <accounts@cs.uwindsor.ca>.  
      
    </span>
- **![4201973.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-10/scaled-1680-/4201973.png) IMPORTANT:**  
    <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Please note that this printer is provided as a **free service for all graduate students**. We kindly ask that you use it responsibly — **personal printing is not permitted**.  
    Misuse of this service may result in your **account being disabled**.  
    </span>
- <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">To view your balance or print from the web (without installing the printer's driver), please log in to [https://print.cs.uwindsor.ca:9192](https://print.cs.uwindsor.ca:9192) </span>

##### **<span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Troubleshooting:</span>**

- <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">If you get a "Failed" message on your computer after you install the PaperCut Deploy client, then add your username and password to the "network password":</span>
    - <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Open "Manage Network Password"</span>
    - <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Click on "Add a Windows credentials"</span>
    - <span style="font-size: 13.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Add the following:  
        </span>**<span style="color: rgb(224, 62, 45);">IMPORTANT</span>:** add **CS\\** in front of your username as shown in the image below.  
        [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-10/scaled-1680-/Zebimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-10/Zebimage.png)
    - Save it, then open your PaperCut Print Deploy Client and click on "Refresh"

# PostgreSQL

***<u><span style="font-size: 12.0pt; line-height: 107%;">Note:</span></u>****<span style="font-size: 12.0pt; line-height: 107%;"> Access to PostgreSQL is restricted to students with projects, and it can be accessed via special subnet (not available publicly to all students)</span>*

##### <span style="text-decoration: underline;">**<span style="font-size: 12.0pt; line-height: 107%;">How to Access Your Database:</span>**</span>

- <span style="font-size: 12.0pt; line-height: 107%;">First step, you need to request the creation of a database by sending an email to <accounts@cs.uwindsor.ca></span>
    - <span style="font-size: 12.0pt; line-height: 107%;">Provide details about your project, supervisor, and what is the suggested name of the database and include a list of all students (if applicable).</span>
- <span style="font-size: 12.0pt; line-height: 107%;">Once CS IT confirms the DB creation, you can log in to [https://psql.cs.uwindsor.ca](https://psql.cs.uwindsor.ca)   
    </span>  
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/roMimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/roMimage.png)
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">If it’s your first time, click on “Add New Server”  
    </span>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/GZ0image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/GZ0image.png)
    
    <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">  
    </span>
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">In the (Register - Server) Windows:</span>
    - <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Name: localhost</span>
    - <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Hostname/address: localhost</span>
    - <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Maintenance database: Your DB name</span>
    - <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Username: your UWINID</span>
    - <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Password: your UWIN password</span>
    - <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Click on "Save"   
          
        </span>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/8tGimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/8tGimage.png)  
          
        [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/vdzimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/vdzimage.png)

##### <span style="text-decoration: underline;">**<span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Connect to PostgreSQL from console: </span>**</span>

- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Login/SSH to your project’s VM, then issue this command:</span>  
    `<span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">psql -h psql.cs.uwindsor.ca -U username -d db_name</span>`

#####  **<span style="text-decoration: underline;"><span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Connect to a database from your application:</span></span>**

- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">When connecting to a database from your application, e.g:  
      
    </span>
    
    ```php
    <?php
    $pdo = new PDO(
        'pgsql:host=psql.cs.uwindsor.ca;dbname=db_name,
        'app_testuser',
        'myPassword'
    );
    $stmt = $pdo->query("SELECT current_user, current_database()");
    print_r($stmt->fetch());
    ?>
    
    ```
    
    <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">  
    </span>
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">The password, must be provided in the code, we <span style="text-decoration: underline;">DO NOT</span> recommend to use your UWIN username and password here!</span>
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Alternatively, create a custom username/role for the application. (as explained in the next steps)</span>

##### <span style="text-decoration: underline;">**<span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Create New username/role for your application (Using the web interface):</span>**</span>

- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Login to [https://psql.cs.uwindsor.ca](https://psql.cs.uwindsor.ca) </span>
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Right click on "Login/Group Roles" and Create a new Role  
    </span>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/9GAimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/9GAimage.png)
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">In the new windows, select the username (always start with **app\_**): </span>  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/25simage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/25simage.png)
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/DCFimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/DCFimage.png)
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">In the "Privileges" tab, you must enable "Can Login" </span>  
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/CQOimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/CQOimage.png)
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"> In the "Membership" tab, add "app\_users" (this step is to allow this new user to login remotely)  
      
    </span>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/Iptimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/Iptimage.png)
    
    <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"> </span>
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Then, we need to grant this new user, access/privileges on your database. right click on your database, and select "Properties":  
    </span>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/sfPimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/sfPimage.png)
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Make sure you are the owner of the database (contact IT if you cannot change it)  
    </span>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/imeimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/imeimage.png)
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">In the "Security" Tab, click on the plus (+) sign, to add the new user to the database:  
    </span>[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/OXlimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/OXlimage.png)
    
    [![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/scaled-1680-/JxAimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-02/JxAimage.png)

##### <span style="text-decoration: underline;">**<span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Create New username/role for your application (Using the command prompt):</span>**</span>

- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">SSH/Login to your VM  
      
    </span>
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Connect to the database:  
    <code>psql &#45;h psql&#46;cs&#46;uwindsor&#46;ca &#45;U username&#45;d database</code>  
      
    </span>
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Verify you are the owner of the database:  
      
    </span>
    
    ```sql
    SELECT datname, pg_catalog.pg_get_userbyid(datdba)
    FROM pg_database
    WHERE datname = 'database';  
    
    ```
    
    If you are not the owner, contact CS IT and ask them to change the owner of the database.
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Create a new application role/username:  
    <code>CREATE ROLE app&#95;testing LOGIN PASSWORD &#39;password&#39;&#59;</code>  
      
    </span>
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Grant the new username/role access to app\_users (so you can login with the new username):  
    <code>GRANT app&#95;users TO app&#95;testing&#59;</code>  
      
    </span>
- <span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Grant the new username access to your database:  
    <code>GRANT ALL ON DATABASE &#34;az&#45;testsis&#34; TO app&#95;testing&#59;</code>  
    </span>

<span style="font-size: 12.0pt; line-height: 107%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: Arial; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-CA; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Now you can use the new username and password to access your database from your web application.</span>

# Jupyter Notebook Basics

CS Jupyter Lab Server is available at [https://djnb.cs.uwindsor.ca/](https://djnb.cs.uwindsor.ca/)

### Create a New Notebook

1. In the top-right corner of the Jupyter dashboard, click the **File** **New** Notebook.
2. Select **Python 3** (or Python 3 \[ipykernel\]).
3. A new tab will open containing your blank Jupyter Notebook (`.ipynb`).

- **Verification:** Ensure a new notebook tab opens with an empty cell and the kernel status circle in the top right turns solid (indicating it is connected).

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-10/scaled-1680-/image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-10/image.png)

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-10/scaled-1680-/S5pimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-10/S5pimage.png)

Press Select

### Understand Notebook Cells

A Jupyter Notebook is made up of individual blocks called **cells**. The two primary cell types you will use are:

- **Code Cells:** Used to write and execute programming logic (default is Python). Outputs appear directly below the cell.
- **Markdown Cells:** Used to write formatted narrative text, explanations, headings, and bullet points using Markdown syntax.
- **Verification:** Click the cell dropdown menu in the toolbar to toggle any cell between "Code" and "Markdown".

1. Click on the first empty cell (which defaults to a code cell).
2. Type a simple print statement:
    
    <div _ngcontent-ng-c2350534351="" class="code-block ng-tns-c2350534351-45 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiEn5-epquXAxUAAAAAHQAAAAAQcA" decode-data-ved="1" jslog="223238;track:impression,attention;BardVeMetadataKey:W1sicl8zNjExYWMzZjQ3ZWM4NGJmIiwiY19lMTY4MmJjYWUxOGQ1NmM0IixudWxsLCJyY180ZGY1OGUyM2Q4NGQzNjljIixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d"><div _ngcontent-ng-c2350534351="" class="formatted-code-block-internal-container ng-tns-c2350534351-45"><div _ngcontent-ng-c2350534351="" class="animated-opacity ng-tns-c2350534351-45"><div _ngcontent-ng-c2350534351="" class="code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c2350534351-45 ng-star-inserted"><span class="ng-tns-c2350534351-45">Python</span><div _ngcontent-ng-c2350534351="" class="buttons ng-tns-c2350534351-45 ng-star-inserted"><button aria-label="Download code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted"></button><button aria-label="Copy code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted"></button></div></div></div></div></div>
    
    ```
    print("Hello, Jupyter!")
    
    ```
    
    <div _ngcontent-ng-c2350534351="" class="code-block ng-tns-c2350534351-45 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiEn5-epquXAxUAAAAAHQAAAAAQcA" decode-data-ved="1" jslog="223238;track:impression,attention;BardVeMetadataKey:W1sicl8zNjExYWMzZjQ3ZWM4NGJmIiwiY19lMTY4MmJjYWUxOGQ1NmM0IixudWxsLCJyY180ZGY1OGUyM2Q4NGQzNjljIixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d"><div _ngcontent-ng-c2350534351="" class="formatted-code-block-internal-container ng-tns-c2350534351-45"><div _ngcontent-ng-c2350534351="" class="animated-opacity ng-tns-c2350534351-45"></div></div></div>
3. Run the cell by pressing **Shift + Enter** on your keyboard (or clicking the **Play ▶** button in the toolbar).

- **Verification:** Confirm that the text `Hello, Jupyter!` appears directly underneath the code cell.

### Add Text Using Markdown

1. Insert a new cell below by clicking the **+** button in the toolbar or pressing **B** while in command mode.
2. Change the cell type to **Markdown**.
3. Type some formatted text:
    
    <div _ngcontent-ng-c2350534351="" class="code-block ng-tns-c2350534351-46 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiEn5-epquXAxUAAAAAHQAAAAAQcQ" decode-data-ved="1" jslog="223238;track:impression,attention;BardVeMetadataKey:W1sicl8zNjExYWMzZjQ3ZWM4NGJmIiwiY19lMTY4MmJjYWUxOGQ1NmM0IixudWxsLCJyY180ZGY1OGUyM2Q4NGQzNjljIixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d"><div _ngcontent-ng-c2350534351="" class="formatted-code-block-internal-container ng-tns-c2350534351-46"><div _ngcontent-ng-c2350534351="" class="animated-opacity ng-tns-c2350534351-46"><div _ngcontent-ng-c2350534351="" class="code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c2350534351-46 ng-star-inserted"><span class="ng-tns-c2350534351-46">Markdown</span><div _ngcontent-ng-c2350534351="" class="buttons ng-tns-c2350534351-46 ng-star-inserted"><button aria-label="Download code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted"></button><button aria-label="Copy code" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted"></button></div></div></div></div></div>
    
    ```
    # My Notes
    This is a **bold** explanation of my code workflow.
    
    ```
    
    <div _ngcontent-ng-c2350534351="" class="code-block ng-tns-c2350534351-46 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiEn5-epquXAxUAAAAAHQAAAAAQcQ" decode-data-ved="1" jslog="223238;track:impression,attention;BardVeMetadataKey:W1sicl8zNjExYWMzZjQ3ZWM4NGJmIiwiY19lMTY4MmJjYWUxOGQ1NmM0IixudWxsLCJyY180ZGY1OGUyM2Q4NGQzNjljIixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d"><div _ngcontent-ng-c2350534351="" class="formatted-code-block-internal-container ng-tns-c2350534351-46"><div _ngcontent-ng-c2350534351="" class="animated-opacity ng-tns-c2350534351-46"></div></div></div>
4. Press **Shift + Enter** to render the text.

- **Verification:** Check that the Markdown code converts into a clean heading and bold text instead of raw code.

### Essential Keyboard Shortcuts

Jupyter operates in two modes: **Edit Mode** (typing inside a cell, green border) and **Command Mode** (navigating cells, blue border). Press **Esc** to enter command mode, and **Enter** to edit.

- **`Shift + Enter`**: Run current cell and move to the next.
- **`A`**: Insert a new cell *above* the current cell.
- **`B`**: Insert a new cell *below* the current cell.
- **`M`**: Change active cell to Markdown.
- **`Y`**: Change active cell to Code.

For further information visit[ https://jupyterlab.readthedocs.io/en/latest/](https://jupyterlab.readthedocs.io/en/latest/)

# Simple Example on Jupyter

**How to Check if you have a GPU on the Server**

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-10/scaled-1680-/rO6image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-10/rO6image.png)

**Installing a library**

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-10/scaled-1680-/yzhimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-10/yzhimage.png)

Matplotlib installs numpy as it is a dependency

Test

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-10/scaled-1680-/Yywimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2026-10/Yywimage.png)

```
import matplotlib.pyplot as plt
import numpy as np

# 1. Generate numerical data using NumPy
# Create 100 evenly spaced points between 0 and 2*pi
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)  # Compute the sine of each x value

# 2. Create the plot using Matplotlib
plt.figure(figsize=(8, 4))  # Set the window size (width, height in inches)
plt.plot(x, y, label="Sine Wave", color="blue", linewidth=2)

# 3. Customize and style the graph
plt.title("Basic NumPy & Matplotlib Example")  # Add a title
plt.xlabel("X Axis (Radians)")  # Add X-axis label
plt.ylabel("Y Axis (Value)")  # Add Y-axis label
plt.grid(True)  # Add a background grid
plt.legend()  # Display the line label ("Sine Wave")

# 4. Display the window
plt.show()
```

# AV 300 Ouellette

We have AV in the classroom, two labs, and a Seminar area.

We have multiple TVs on the cart.

**Seminar Areas and Lab:**

**Resources:**

Viewsonic commercial displays (3 numbers) in the Seminar area.

Viewsonic commercial displays (2 numbers) in each of the Lab, the North Lab, and the South Lab.

The following provides information on <span style="text-decoration:underline;">**Viewsonic Displays**</span>.

### <span style="text-decoration:underline;"><span style="color:rgb(0,0,0);text-decoration:underline;">**Do Not:**</span></span>

**Do not randomly switch on and off the Displays if they are not working or if they have a Red light indicator on and the Display is Black or Unresponsive.**

**Do not disconnect HDMI cables or fight with the existing cables.**

**Do not go to any other machines or displays and remove the HDMI cables, and try to connect to the not-working display, assuming it will work. In this process, you are disturbing and crippling a working environment.**

##### <span style="text-decoration:underline;">**What should you do?**</span>

The following is the pictorial view of the displays.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-05/scaled-1680-/3SBimage.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-05/3SBimage.png)

You will find the following panel.

[![image.png](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-05/scaled-1680-/5C7image.png)](https://help.cs.uwindsor.ca/uploads/images/gallery/2025-05/5C7image.png)

The following is the process you should follow.

<span>1) The screen is black, unresponsive, and the light is Red; the issue could be with power, connections, or internal components. </span>

<span>2) First, ensure the power cable is securely plugged into both the display and a working outlet. </span>

<span>3) Try a different power cable and outlet to rule out power issues.</span>

<span>4)  </span><span>If the screen still doesn't display, try a power reset by unplugging the power cable, holding the power button for 30 seconds (button number 1 in the above picture), and then plugging it back in. </span>

<span>5) If that doesn't work, you might need to check the video cable and ensure it's properly connected. </span><span>If the issue persists, you might need to contact CS support for further troubleshooting.<span class="pjBG2e"><span class="UV3uM"> </span></span></span>

6\) Please get in touch with the staff and report the problem. If the staff has a spare cable, you can ask and try it out.