Skip to content

An open source platform to scale your know how. A network to seamlessly share skills, opportunities and discoveries.

License

Notifications You must be signed in to change notification settings

luisawatkins/coordnet

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coordination Network

Coordination Network

An open source platform to scale your know how. A network to seamlessly share methods, opportunities and discoveries. This is the monorepo containing back and front-end code to run the APIs and interface.

Table of Contents

Overview

Coordination Network is an open-source platform designed to help organizations and communities scale their knowledge sharing and coordination efforts. The platform provides tools for sharing methods, opportunities, and discoveries across your network.

Getting Started

Prerequisites

  • Docker and Docker Compose
  • Git
  • Pre-commit (for development)

Environment Setup

  1. Clone the repository:
git clone https://github.com/coordnet/coordnet.git
cd coordnet
  1. Copy the environment file:
cp .envs/.local/.secrets.example .envs/.local/.secrets
  1. Configure your environment variables in .envs/.local/.secrets and .envs/.local/.django.secrets:
    • OPENAI_API_KEY: Obtain from OpenAI Platform
    • SEMANTIC_API_KEY: Get from Semantic Scholar
    • For the JWT_SIGNING_KEY and JWT_VERIFYING_KEY, generate a keypair and save them as a one-line string. To create the keypair using openssl, run:
      openssl genrsa -out private-key.pem 4096
      openssl rsa -in private-key.pem -pubout -out public-key.pem

Local Development

  1. Build the Docker images:
docker compose build
  1. Start the application:
docker compose up --watch
  1. Access the application:

Initial Configuration

Account Creation

  1. Once the application is running, navigate to http://localhost:5173/auth/signup
  2. Fill in your details:
    • Name
    • Email address
    • Password

Email Verification

  1. The system will send a verification email
  2. Since you're running locally, emails are sent to Mailpit
  3. Access Mailpit at http://localhost:8025
  4. Find your verification email and copy the verification code
  5. Enter the code in the verification page to complete your account setup

Superuser Setup

  1. Open a terminal and get a shell to the Django container:
docker compose run --rm django bash
  1. Create a superuser account:
python manage.py createsuperuser
  1. Follow the prompts to set:
    • Email address
    • Password

Space Creation

  1. Log in to the Django Admin (http://localhost:8000/admin) using your superuser credentials
  2. Navigate to "Spaces" and click "+ Add"
  3. Configure your space:
    • Enter a title
    • Under "Object Memberships", assign users and their roles
  4. Click "Save" to create the space
  5. Access your space at http://localhost:5173

Development Tools

Pre-commit Hooks

  1. Install pre-commit:
pip install pre-commit
  1. Set up the hooks:
pre-commit install
pre-commit install --hook-type commit-msg

Docker Commands

  • Build containers: docker compose build
  • Start services: docker compose up --watch
  • Stop services: docker compose down
  • Access Django shell: docker compose run --rm django bash

Configuration

Required Settings

When not using Docker Compose, configure the following:

  • Database Settings (either set DATABASE_URL or individual settings):

    • POSTGRES_DB
    • POSTGRES_USER
    • POSTGRES_PASSWORD
    • POSTGRES_HOST
    • POSTGRES_PORT
  • Message Queue Settings:

    • CELERY_BROKER_URL or default REDIS_URL
  • Production Settings:

    • SECRET_KEY
    • CORS_ALLOWED_ORIGINS
    • CSRF_TRUSTED_ORIGINS
    • DJANGO_ALLOWED_HOSTS
  • Email Settings (Production):

    • MAILGUN_API_KEY
    • MAILGUN_DOMAIN

Optional Settings

  • Sentry Error Tracking:
    • SENTRY_AUTH_TOKEN
    • SENTRY_DSN

Deployment

The project is currently deployed using Docker containers on fly.io. Configuration files (fly.*.toml) are available in the project root. While the project can theoretically be deployed to any Docker-compatible environment, the process is currently only documented for fly.io.

API Documentation

The API is documented using OpenAPI. Access the documentation:

Contributing

  1. Check the repo issues for contribution ideas
  2. Read the contributing documentation for detailed guidelines
  3. Submit your contributions through pull requests

Any contribution intentionally submitted for inclusion in this repository, shall be dual licensed as below, without any additional terms or conditions.

License

Licensed under either of:

About

An open source platform to scale your know how. A network to seamlessly share skills, opportunities and discoveries.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 51.7%
  • Python 44.0%
  • HTML 1.8%
  • Shell 1.2%
  • Dockerfile 0.7%
  • JavaScript 0.3%
  • CSS 0.3%