Skip to content

🧪 The all-in-one platform to organize your life. Official main repository.

Notifications You must be signed in to change notification settings

zyndicatehq/zyndicate

Repository files navigation

Zyndicate - Ecosystem

🧪 The all-in-one platform to organize your life.

Welcome to the future of productivity. This is the official private repository for the Zyndicate ecosystem and platform.


NOTICE: The code in this and any private Zyndicate repositories must not be shared (under any circumstance) with anyone outside of the company. By forming part of the Zyndicate team & organization, you agree to the previous statement.

IMPORTANT:

Make sure that you use yarn instead of npm - always. The app will break and things will not run properly if we mix package managers. For Zyndicate moving forward, we have decided to go with Yarn, which means that anything and everything you do while developing involving package managers must be done with Yarn and not with npm or any other alternative managers.

App Structure & Format

The Zyndicate application houses most of its actual code in the core directory. Within it, there is zyndicate and zyndicate-api. zyndicate houses all of the frontend code involved in the app, while zyndicate-api holds the backend portion of Zyndicate (routing, queries, etc.). cors is the cors proxy required for the LinkEmbed and might come in useful other times.

Anything outside of the core directory is generic files that come with every program, such as package.json, .gitignore, the README.md, etc.

The Zyndicate folder structure can be visualized in the following way:

| -core
|  | -zyndicate
|  | -zyndicate-api
|  | -cors
| -.gitignore
| - lerna.json
| -package.json
| -README.md
| -other files

This page is meant to help you set up the your environment so that you can run the application. When you start your environment it will start

  1. Traefik
  2. Redis
  3. Postgres
  4. Backend
  5. Frontend

Environment Setup

Make sure you have the following items installed on your local machine (the app, API, and other features will not run if you don't):

  1. Docker Desktop
  2. Yarn
  3. NodeJS
  4. PostgreSQL

Test

  1. Make sure that Docker is installed by running docker --help If you get output then it it means you have it installed.

  2. Check to make sure you have yarn installed by running yarn --version at your command line.

  3. Run node --version to check for NodeJS on your local machine.

  4. Finally, verify that PostgreSQL is installed on your local machine by running the following command at your command line: psql --version.

Initialization

  1. If it is your first time running the Zyndicate app with Docker, run docker network create web in your terminal (root directory of project).

  2. Install all dependencies in the root directory of the project by running yarn install, or simply, yarn.

Running

  • To start up your services, run docker-compose up in the root directory of the project. Make sure Docker Desktop is up and running, as the previous command will throw an error shall it not be open.

  • After about 20-40 seconds (may take more or less), all your services should be up. To verify that they are up, go to these urls in your browser:

  1. monitor.localhost
  2. api.localhost/graphql
  3. localhost:8000

Note: You must update all Apollo URIs and URLs from https://api.zyndicate.app to http://localhost:4000/graphql (find and replace in your code editor) and CORS in src/index.ts to https://localhost:8000 to be able to run the app in development.

Also, make sure to give the API and frontend to start/restart. If you get a Bad Gateway of similar response on the browser, you must simply give it time. Failed to Fetch or something similar means your URIs and CORS are not properly set up for development mode.

Explanation

After looking at the previous section, you may be wondering what each of the different URLs that comprise the Zyndicate development environment do. Here is a brief explanation of each one:

  1. monitor.localhost: Involves monitoring the different things going on at once in our app. Gives us great analytics about the ins and outs of what's running, how, and where it's running.
  2. api.localhost/graphql: This is the backend portion of the app; our GraphQL plaground. This allows us to quickly and easily test queries, mutations, and other related actions without breaking the app and overcomplicating ourselves.
  3. localhost:8000 Finally, the main portion of the app. This is where the Zyndicate application runs in its enterity (comprising the frontend and the backend). Essentially, this is the Zyndicate application itself (all of it). This should be the URL you visit most, especially if you're working on either the UI, functionality, connection to backend, etc.)

Yarn Workspaces

In order to run other important potions comprising the app, you must use yarn workspaces. According to the yarn website itself, workspaces are a new way to set up your package architecture that’s available by default starting from Yarn 1.0. It allows you to setup multiple packages in such a way that you only need to run yarn install once to install all of them in a single pass.

The why

Depnedencies can be linked together, which means that your workspaces can depend on one another while always using the most up-to-date code available. This is also a better mechanism than yarn link since it only affects your workspace tree rather than your whole system.

All your project dependencies will be installed together, giving Yarn more latitude to better optimize them.

Yarn will use a single lockfile rather than a different one for each project, which means fewer conflicts and easier reviews.

Workspaces in our environment

Storybook (storybook.js.com)

Storybook is an open source tool for developing UI components in isolation fo React. It makes building stunning UIs organized and efficient.

In order to run the Storybook server and access all of our separate components, you musy (naturally), use Yarn workspaces.

Read more on how Storybook functions in the Zyndicate application, how to use it, and when by reading our own documentation on ZDocs here.

Command: In the root directory of the application (outside of the core folder), run:

yarn workspace @zyndicate/frontend storybook

This will open the Storybook server and give you access to our components in isolation.


ZDocs - Internal Documentation

At Zyndicate, we believe in the power of building. More soecifically, building things with the right. processes and systems in place in order to dramatically increase our chances of success. For this reason, we at Zyndicate take the process of internal documentation and knowledge-sharing very seriously; it is an intergral part of anything we build.

This is where ZDocs comes in; our own, fully-private and customizable, internal docuentation repository/system.

Visit the ZDocs repostory on GitHub to learn more and initialize the internal documentation for Zyndicate on your local machine so you can get started building and shipping faster, easier, and more efficiently.

If you have any questions or the process isn't working for you, make sure to ask someone else on the team :).

Team

Person Role
Filippo Fonseca Co-Founder, CEO, Design Lead, Full-Stack Engineer
Mark Music Co-Founder, COO, Full-Stack Engineer, Content Lead
Ross Perkel Product Lead
Juan Garcia Full-Stack Engineer (primarily Frontend)
Talha Ashraf Full-Stack Engineer
Danny Zolp Full-Stack Engineer
Casper Iversen Full-Stack Engineer
Luis Felipe Santos do Nascimiento Full-Stack Engineer
Sooryakiran Ponnath Full-Stack Engineer
Varoon Raghupathi Full-Stack Engineer (primarily Backend)
Daniel Giacomin Cybersecurity & IT Systems Engineer
Ryan Bardack Business Development & Strategy Lead
Alberto Jimenez Research & Development Lead
Damjan Karlovski Frontend Engineer
Sled Campos Silva Full-Stack Engineer

Copyright 2021 - Zyndicate Labs

About

🧪 The all-in-one platform to organize your life. Official main repository.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 8

Languages