guadalupebabio / ThePowerofWithout

To better understand and study informal settlements and communities, the team at MIT City Science has developed a taxonomy of informality. This taxonomy is further understood using a series of qualitative and quantitative questions that are answered by the stakeholders on each community to understand both the strengths of each community and their challenges.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

the-power-of-without

The Power of Without is a collaborative initiative among institutions and local communities for identifying cost-efficient, lightweight infrastructure systems for deployment in informal settlements, to foster sustainable, resilient, and autonomous communities. A taxonomy, and methodology based in a set of workshops and classes has been developed to learn from informality.

https://www.media.mit.edu/projects/power-of-without-1/overview/

Getting Started

This project runs off a Node.js backend, with a MongoDB database. Follow these steps to run the project locally:

Configuring Dependencies

(This step only needs to be done once)

  • Clone the repository locally: git clone https://github.com/guadalupebabio/ThePowerofWithout.git

  • In the project folder, install the packages: npm install

    • Make sure npm is installed. If not, make sure you have node.js you can verify it entering: node -v you can do the same for NPM: npm -v.
  • Install gulp locally: npm install -g gulp. This is necessary to compile the styles from SCSS to CSS.

  • The database is hosted on MongoDB Cloud (may be migrated to another service in the future), and requires some security configuration in order for you to connect to it:

    • Email me so I can add you as an admin on the database
    • In the "Security" tab on MongoDB Cloud's dashboard, click "Database Access" and make a new database user for yourself (see below).
    • Create a file in the root directory of the repository called .env with the following layout (there is a third party database we integrate with this app, so you should also include these credentials):
    MONGODB_USERNAME=<the database username you just created>
    MONGODB_PASSWORD=<the database password you just created>
    APP_MONGODB_USERNAME=<email me, jjshen@mit.edu for these credentials>
    APP_MONGODB_PASSWORD=<email me, jjshen@mit.edu for these credentials>
    

    Importantly, this file is in the gitignore because you should not publish these credentials. Keep this file safe and private.

Running the Server

(This step should be run everytime)

  • Run node index.js in the project repository
  • Run gulp in another terminal tab. This is necessary to compile your SCSS to CSS.
  • If everything works properly, going to localhost:3000 in your browser should work.
  • Important: everytime you change the code, you need to re-run node index.js for the changes to be reflected.
    • (This is really annoying, so a potential workaround is node-dev, which automatically restarts node on any changes to the code. Once you've installed node-dev, you can run node-dev index.js instead of node index.js.

Project Organization

  • index.js: The main Node.js file
  • app: All other Node.js files are here
  • public: Everything in this folder is a static file served by the frontend (don't include sensitive information here). Read more about this type of folder here.
  • util: This folder is deprecated, don't worry about it.
  • views: This folder contains the Pug layouts which are rendered by the backend. Read more about Pug files here.

Run it locally

  • Go to the folder where the project is locacted and type: npm start

Deployment

  • Once you update the site locally and push it to Github main. Go to Heroku with the user and password saved in "PoW-Crowdsource data platform" accounts tab (google spreadsheets). In Heroku go to Deploy, scroll down to Manual Deploy and click "Deploy Brunch".
  • In case it is not working or you want to go back to a previous version, go to Activity and roll back to a previous deployment.

MongoDB

  • Access MongoDB with your own user or the one you can find "PoW-Crowdsource data platform" spreadsheet.
  • Go to browse collections. This is the structure of the data:
    • comments: Comments by questions
    • Links: Links by questions
    • settlement_city_science_db: Database from City Science adapted to MongoDB structure.
    • settlementtsdatas: Data saved by settlement.
    • surveys: final survey
  • To give access to someone or to edit the password of the .env go to Database Access.

About

To better understand and study informal settlements and communities, the team at MIT City Science has developed a taxonomy of informality. This taxonomy is further understood using a series of qualitative and quantitative questions that are answered by the stakeholders on each community to understand both the strengths of each community and their challenges.


Languages

Language:JavaScript 89.0%Language:Pug 10.3%Language:SCSS 0.6%