# Seekia

![Seekia Banner](./markdownImages/seekiaLogoWithSubtitle.jpg)

## What is Seekia?

![Seekia Homepage](./markdownImages/seekiaHomepage.jpg)

**Seekia is a genetics aware mate discovery network.**

Seekia is a mate discovery network where users can find a mate while having a deep awareness of each potential mate's genetics.

Users can share genetic information in their profiles such as monogenic disease probabilities, allele values, and ancestry.

Seekia enables users to browse and filter potential mates by their genetic attributes and the predicted genetic attributes of their offspring. Seekia allows for users to predict and control the genetic attributes of their offspring by selecting a mate who is the most likely to produce offspring with their desired attributes.

Users can view information about the health and physical traits of their prospective offspring for each user. Users can choose to mate with users with whom their offspring has a lower probability of having diseases and a higher probability of having certain traits.

Seekia aims to increase humanity's genetic desirability by making humans healthier, more beautiful, more intelligent, more virtuous, and happier. Seekia aims to facilitate eugenic breeding by helping to create mate pairings which are the most likely to produce healthy, beautiful, intelligent, virtuous, and happy offspring.

The goal of Seekia is to accelerate humanity's adoption of genetics aware mate discovery technology, and to help humanity mate in a genetics aware manner.

### Learn More

Access Seekia's clearnet website at [Seekia.net](https://seekia.net).

Access Seekia's Ethereum IPFS ENS website at [Seekia.eth](ipns://seekia.eth). This site can be accessed through Brave Browser.

Read the whitepaper at `/documentation/Whitepaper.pdf`

Read the documentation at `/documentation/Documentation.md`

Learn how to contribute at `/documentation/Contributing.md`

## How To Run

To run Seekia, you must first install Golang and Fyne dependencies.

The instructions are described below.

### Install Golang

Golang is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Install it by following the instructions on this website: [go.dev/doc/install](https://go.dev/doc/install)

### Install Fyne Dependencies

Fyne is a user interface toolkit and app API written in Golang.

You will need to install a C compiler and the graphics library header files.

One of the following commands will probably work:

* **Debian / Ubuntu:**
    * `sudo apt install gcc libgl1-mesa-dev xorg-dev`
* **Fedora:**
    * `sudo dnf install gcc libXcursor-devel libXrandr-devel mesa-libGL-devel libXi-devel libXinerama-devel libXxf86vm-devel`
* **Arch Linux:**
    * `sudo pacman -S xorg-server-devel libxcursor libxrandr libxinerama libxi`
* **Solus:**
    * `sudo eopkg it -c system.devel mesalib-devel libxrandr-devel libxcursor-devel libxi-devel libxinerama-devel`
* **openSUSE:**
    * `sudo zypper install gcc libXcursor-devel libXrandr-devel Mesa-libGL-devel libXi-devel libXinerama-devel libXxf86vm-devel`
* **Void Linux:**
    * `sudo xbps-install -S base-devel xorg-server-devel libXrandr-devel libXcursor-devel libXinerama-devel`
* **Alpine Linux:**
    * `sudo apk add gcc libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev linux-headers mesa-dev`
* **NixOS:**
    * `nix-shell -p libGL pkg-config xorg.libX11.dev xorg.libXcursor xorg.libXi xorg.libXinerama xorg.libXrandr xorg.libXxf86vm`
* **FreeBSD:**
    * `sudo pkg install gcc xorg pkgconf`
* **NetBSD:**
    * `sudo pkgin install pkgconf`
* **Windows / Mac:**
    * Visit [docs.fyne.io/started](https://docs.fyne.io/started/) to learn the instructions to install Fyne for Windows and Mac.

### Run Seekia

Open a terminal and navigate inside of the Seekia folder.

Once there, run the following command:

`go run main.go`

If you are running for the first time, the `run` command will download the Golang modules that Seekia uses.

## Testing

Use the following command to run Seekia tests:

`go test ./...`

## Disclaimer

Seekia is not fully operational.

Hosts and clients will not connect to the internet, and you will not be able to download profiles or chat with users.

There are many TODOs throughout the code, and the `/documentation/Future-Plans.md` document describes many features that need to be built.

## Simulating Use

You can create fake profiles and messages to simulate what it is like to use Seekia.

An easy way to see how user profiles look is to build your profile on the Profile - Build page and then view your profile on the Profile - View page.

To create fake user profiles and receive fake messages, run the `generateContent.go` file in the `/utilities/generateContent/` folder.

You must first create an app user and a Mate identity.

## Contact

You can contact Seekia's creator and lead developer, Simon Sarasova.

His Seekia identity hash is: `simonx5yudleks5jhwhnck5s28m`

You can use the Seekia application to cryptographically verify Seekia memos are authored by Simon's identity hash. You can do this by navigating to Settings -> Tools -> Verify Memo.

Get Simon's contact information by visiting his website at [SimonSarasova.eth](ipns://SimonSarasova.eth)

You can use Brave browser to access a .eth IPFS website.

You can also use an IPFS gateway service if you do not have Brave Browser. These services are operated by third parties. You can access his website from multiple gateways to ensure you are seeing an authentic version of his website:

[SimonSarasova.eth.limo](https://simonsarasova.eth.limo)

[SimonSarasova.eth.link](https://simonsarasova.eth.link)


