{"id":50364991,"url":"https://github.com/involvemint/impublic","last_synced_at":"2026-06-05T18:00:46.455Z","repository":{"id":77553420,"uuid":"560079884","full_name":"involveMINT/iMPublic","owner":"involveMINT","description":"Public involveMINT repo ","archived":false,"fork":false,"pushed_at":"2026-05-30T02:04:17.000Z","size":10474,"stargazers_count":10,"open_issues_count":235,"forks_count":36,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-30T03:22:08.713Z","etag":null,"topics":["alternative","bartering","basicincome","circulareconomy","community","crypto","cryptocurrency","ecology","economics","environment","hacktoberfest","hacktoberfest2025","marketplace","nonprofit","regeneration","sdg","socialimpact","sustainability","volunteer"],"latest_commit_sha":null,"homepage":"https://app.involvemint.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/involveMINT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/Contributing.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-31T17:38:26.000Z","updated_at":"2026-05-30T02:03:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"1b799c65-3c0e-4b17-93eb-dde623c6657a","html_url":"https://github.com/involveMINT/iMPublic","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/involveMINT/iMPublic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involveMINT%2FiMPublic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involveMINT%2FiMPublic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involveMINT%2FiMPublic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involveMINT%2FiMPublic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/involveMINT","download_url":"https://codeload.github.com/involveMINT/iMPublic/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involveMINT%2FiMPublic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33951164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alternative","bartering","basicincome","circulareconomy","community","crypto","cryptocurrency","ecology","economics","environment","hacktoberfest","hacktoberfest2025","marketplace","nonprofit","regeneration","sdg","socialimpact","sustainability","volunteer"],"created_at":"2026-05-30T03:04:00.553Z","updated_at":"2026-06-05T18:00:46.449Z","avatar_url":"https://github.com/involveMINT.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Official involveMINT Web App Repository\r\n\r\n## Build Prerequisites\r\n\r\nPrerequisites:\r\n\r\n- Node.js\r\n- Docker\r\n\r\n## Steps to Set Up Environment\r\n\r\n1. Fork and clone this repository. Ensure that you uncheck the \"copy main branch only\" checkbox. Once you forked the repository, clone it to a directory on your local machine and `cd` into it.\r\n\r\n2. Checkout the \"develop\" branch: `git checkout develop`.\r\n3. Ensure you have Node.js installed. If you don't, please look at the section on [installing node.js](#installing-nodejs).\r\n4. Ensure you have Docker installed. If you don't, please navigate to the [official website](https://docs.docker.com/get-docker/) and follow the instructions. Run `docker --version` in your terminal after it's installed to ensure you have installed everything correctly.\r\n\r\n### Installing Node.js\r\n\r\nRun the following commands.\r\n\r\n1. `curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash`\r\n2. `export NVM_DIR=\"$([ -z \"${XDG_CONFIG_HOME-}\" ] \u0026\u0026 printf %s \"${HOME}/.nvm\" || printf %s \"${XDG_CONFIG_HOME}/nvm\")\"`\r\n3. `[ -s \"$NVM_DIR/nvm.sh\" ] \u0026\u0026 \\. \"$NVM_DIR/nvm.sh\"`\r\n4. Refresh your shell (close and reopen). If you're using zsh, here's a shortcut: `source ~/.zshrc`\r\n5. If the following command does not throw an error, you're good so far: `nvm -v`\r\n6. `nvm install lts/gallium`\r\n7. `nvm use lts/gallium`\r\n\r\n### Configuring Firebase\r\n\r\nIn order to run this code, you will need to navigate to [firebase](https://console.firebase.google.com/). You will see a screen that looks like ![firebase-landing](/assets/firebase-landing.png) and click \"Create a project\" (if you don't already have a GCP account and an existing project where you want to use Firebase). Once you have a project, you should see a screen like ![this](assets/firebase-dashboard.png) Once here, click the little gear and you'll see a screen that looks like ![this](assets/firebase-settings.png) Select the \"Service accounts\" tab and you'll see a screen that looks like ![this](assets/firebase-service-accounts.png) Hit the \"Manage service account permissions\" hyperlink which will take you to your GCP project. You will see a screen that looks like ![this](/assets/googlecloud-service-accounts.png). Click the account and then hit the \"Keys\" tab. You should see a screen that looks like ![this](/assets/service-account-keys.png). Click \"Add Key\" and then choose the \"JSON\" option to download it as a JSON file.\r\n\r\nEnsure you are in the project directory (the directory that this file is in). Run the following command: `cp libs/shared/domain/src/lib/environments/environment.ts libs/shared/domain/src/lib/environments/environment.local.ts` and open the new file (environment.prod.ts) in your editor. It should look like this at first:\r\n\r\n```typescript\r\nimport { Env } from './environment.interface';\r\n\r\nconst host = 'localhost';\r\n\r\n/** Develop environment variables. */\r\nexport const environment: Env = {\r\n  production: false,\r\n  test: false,\r\n  host,\r\n  apiUrl: `http://${host}:3335`,\r\n  appUrl: `http://${host}:4202`,\r\n  storageBucket: 'your storage bucket',\r\n  adminPasswordHash:\r\n    'sZfCJx5X3sGSwkokIs9IVFxDfxWd2lEKsAhkOSDfEK8u2YS98y5rJAmXmtrJs7AQ29xkHMmz0bDfLkXCKS9/+A==',\r\n  gcpApiKey: 'insert your key here',\r\n  typeOrmConfig: {\r\n    type: 'postgres',\r\n    host: '127.0.0.1',\r\n    port: 5433,\r\n    username: 'postgres',\r\n    password: '1Qazxsw2',\r\n    database: 'involvemint',\r\n    synchronize: true,\r\n    autoLoadEntities: true,\r\n    ssl: false,\r\n  },\r\n  firebaseEnv: {\r\n    apiKey: 'insert your key here',\r\n    authDomain: 'firebase auth domain',\r\n    databaseURL: '',\r\n    projectId: 'your project id',\r\n    storageBucket: 'Your project storage bucket', //your-something.appspot.com\r\n    messagingSenderId: '',\r\n    appId: 'your app id',\r\n    measurementId: 'Your measurementId',\r\n  },\r\n  // mailgun and twilio are optional\r\n  mailgun: {\r\n    apiKey: '',\r\n    domain: '',\r\n  },\r\n  twilio: {\r\n    accountSid: '',\r\n    authToken: '',\r\n    sendingPhone: '',\r\n  },\r\n  gcp: {\r\n    type: 'service_account',\r\n    project_id: 'project-id',\r\n    private_key_id: 'Your Private Key',\r\n    private_key: '-----BEGIN PRIVATE KEY-----\\nYour Private Key\\n-----END PRIVATE KEY-----\\n',\r\n    client_email: 'Your client email',\r\n    client_id: 'client id',\r\n    auth_uri: 'https://accounts.google.com/o/oauth2/auth',\r\n    token_uri: 'https://oauth2.googleapis.com/token',\r\n    auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs',\r\n    client_x509_cert_url: 'cert url',\r\n  },\r\n  // I don't think this is used\r\n  scrypt: {\r\n    memCost: 14,\r\n    rounds: 8,\r\n    saltSeparator: 'Bw==',\r\n    signerKey: 'de/PQ/Gy53mgslvUgDUKDCgHJPArYqbFnGILLQZNe5My/CvqIThVL/CsndU8oudZ9lc4B7PT8w3sAar2/luQxA==',\r\n  },\r\n  defaultLocalAddress: [{\r\n    streetNumber: '5000',\r\n    streetName: 'Forbes Ave',\r\n    formattedAddress: '5000 Forbes Ave, Pittsburgh, PA 15213',\r\n    city: 'Pittsburgh',\r\n    administrativeLevels: {\r\n      level1short: 'PA'\r\n    },\r\n    zipcode: '15213',\r\n    latitude: 40.444229,\r\n    longitude: -79.943367\r\n  }]\r\n};\r\n```\r\n\r\n\r\nUnder the key \"typeOrmConfig\", please change the password field to \"postgres\". Under the key \"gcp\", please change the fields to match the fields in your service account JSON file that you just downloaded in the previous step.\r\n\r\n### Starting the Containers\r\n\r\nRun `docker compose up` in the root directory, which will spin up a PostgreSQL database on port 5433, a PgAdmin UI on port 8889, and a firestore emulator available at http://127.0.0.1:4000.\r\n\r\nIf you are prompted for the pasword (below screenshot) when opening PgAdmin at http://localhost:8889 enter `postgres`. \r\n![postgres_db_password_required](/assets/postgres_db_password_required.png)\r\n\r\n\r\n### Starting the Apps\r\n\r\n- Open a terminal and run `npm i` from root directory to install all the required packages. \r\n- Run `export FIREBASE_STORAGE_EMULATOR_HOST=localhost:9199`. \r\n- Run `export FIRESTORE_EMULATOR_HOST='localhost:8080'`. \r\n- Run `npm run start:client:local` which will start the client app.\r\n- Leave that terminal open and running and open a new terminal\r\n- In the new terminal: Run `export FIREBASE_STORAGE_EMULATOR_HOST=localhost:9199`. \r\n- In the new terminal: Run `export FIRESTORE_EMULATOR_HOST='localhost:8080'`. \r\n- Then Run `npm run start:server:local` which will start the server app.\r\n\r\nOnce running, the client can be accessed via `http://localhost:4202` and the api/server will be running on `http://127.0.0.1:3335`\r\n\r\n\r\n\r\nFor any issues, or to suggest improvements to this documentation, please contact Anish Sinha \u003c\u003canish@developforgood.org\u003e\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvolvemint%2Fimpublic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finvolvemint%2Fimpublic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvolvemint%2Fimpublic/lists"}