Giter Club home page Giter Club logo

takwimuafrica / takwimu Goto Github PK

View Code? Open in Web Editor NEW
13.0 4.0 1.0 85.17 MB

Takwimu is a free and open development information service, transforming access to high quality analysis and data for African changemakers. Accessible at https://takwimu.africa/

Home Page: https://takwimu.africa/

License: GNU General Public License v3.0

Python 64.89% CSS 0.03% HTML 13.56% Makefile 0.06% JavaScript 19.93% Shell 0.05% Dockerfile 0.07% SCSS 1.41%
data open-data takwimu africa data-visualisation senegal tanzania nigeria

takwimu's Introduction

Takwimu

Build Status Known Vulnerabilities

The Takwimu web platform powering insight from human development data indicators. Helping to find the stories behind the data. Accessible at https://takwimu.africa/

Background

People need accurate, objective information to make good decisions. However, uneven access to quality information weakens the impact of policy and programming in Africa as well as the ability of local development actors, particularly those with limited resources, to drive necessary change.

Takwimu was launched in 2018 to empower African changemakers with the best data available and support their efforts to put this into effective use. We take a holistic view of what kinds of data are needed to drive change.

Read more at https://takwimu.africa/about


Platform Goals

The web-based platform seeks to:

  1. Provide an intuitive platform for our primary audiences to access insights from data
  2. Make it easy for data curators and analysts to publish and manage content on Takwimu
  3. Allow easy interaction and feedback between the two users above (publisher and audience)

We don't:

  1. Re-invent the wheel: a lot of smart people have already developed the packages needed, we re-use, re-purpose and attribute
  2. Shred data: where we can, we deprecate data models and keep data created always available
  3. Develop Content Management Systems (CMSs): there are a lot of content management systems available. We re-use for best fit focussed on what our primary audiences need

Development

Setup

There are a couple of ways one can setup their development environment and we currently support Docker. It allows us to move away from the "but it works on my machine" issue when making changes or deploying.

You can download Docker Community Edition from here - https://www.docker.com/community-edition

With Docker Compose, development set up is relatively quick:

git clone https://github.com/TakwimuAfrica/TAKWIMU.git
cd TAKWIMU
make build
make web
make loaddata

Optionally you can also enable Redis as cache backend in your development environment by doing the following:

export TAKWIMU_CACHE=True
make web

Admin a/c

TODO

Load initial data

TODO

Elasticsearch

The search index is automatically updated using Wagtail's provided search signal handlers; but in case the index has to be rebuilt manually, run the following command:

make update_index

Handling Data

HURUmap Data

To import HURUmap data, we run the following command in docker-entrypoint.sh:

cat takwimu/sql/*.sql | psql -U takwimu -W takwimu

To export the HURUmap data you might be working on, run the following command:

docker-compose exec web python manage.py dumppsql --table TABLENAME > sql/TABLENAME.sql

To dump all data tables at once, run

for t in `ls takwimu/sql/[a-z]*.sql`
do
    echo $t
    pg_dump "postgres://takwimu:takwimu@localhost/takwimu" \
        -O -c --if-exists -t $(basename $t .sql) \
      | egrep -v "(idle_in_transaction_session_timeout|row_security)" \
      > takwimu/sql/$(basename $t .sql).sql
done

Django / CMS Data Import

Once done, you'd want to load some data available to you:

CAREFUL: Doing this will override whatever data you already have in the DB.

# Docker
docker-compose exec web ./manage.py loaddata $(ls takwimu/fixtures)

Django / CMS Data Export

To export data, run the following commands:

# Docker
docker-compose exec web ./manage.py dumpdata takwimu.SupportService -o takwimu/fixtures/supportservice.json
docker-compose exec web ./manage.py dumpdata takwimu.FAQ -o takwimu/fixtures/faq.json

Tests

TODO


Deployment

TODO


Contributing

If you'd like to contribute to TAKWIMU, check out CONTRIBUTING.md on how to get started.


Attribution

TAKWIMU has been made possible thanks to:


License

GNU General Public License v3.0

Takwimu provides quality insights and data-driven analysis to empower African development champions.

Copyright (C) 2018 africapractice, Code for Africa, iHub

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

All content is released under a Creative Commons 4 Attribution license. If you use this software, please provide attribution to Takwimu, africapractice, Code for Africa, and iHub.

takwimu's People

Contributors

davidlemayian avatar dependabot[bot] avatar karimkawambwa avatar khadijamahanga avatar kilemensi avatar mohammadufo avatar mtuchi avatar nerdlet avatar phillipahereza avatar pyup-bot avatar tebajanga avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

visioninhope

takwimu's Issues

[SERVICES] Implement Support Services Page

Description

The data services page implements both the normal page layout and data by priority section.

The order for this is laid out in the screenshots below.

Screenshots

Hero:
screen shot 2018-06-25 at 16 51 08

Data by Priority:
screen shot 2018-06-14 at 15 57 59

Get In Touch
screen shot 2018-06-25 at 16 52 36

Files

Tasks

  • Style according to designs on Zeplin

Contact Us (Zendesk) integration

Description

This is the help desk or support feature to allow end-users to ask for assistance with platform navigation, content clarification, or other information. Because there are amazingly robust services built to achieve the already, we would integrate with products such as Zendesk or Intercom

With the support staff as our first line of interaction with customers, there are a couple of scenarios detailed here and their appropriate responses.

Screenshots

screen shot 2018-05-14 at 11 46 22

Files

Tasks

  • Narrow down a provider to use -> Zendesk
  • Integrate choosen provider into the platform
  • Test the solution

[Media Centre] Implement Press Downloads Page

Description

This page should be created from the dashboard as a child of media center page

Screenshots

screen shot 2018-06-14 at 15 27 29

Tasks

  • Create Page Model as a child page of media centre page
  • Implement page as in the Zaang designs

[PROFILES] Implement TOC Sidebar Nav

Implement table of contents as is in the designs with the animations to show it and hide it

screen shot 2018-06-13 at 14 39 32

Tasks

  • Have TOC button at the far right
  • Create div with the absolute position + scrollable
  • Populate layout with content
  • Make dismissible + show on click

Design guideline

Is your feature request related to a problem? Please describe.
The need to have a central place in the repo to document all design elements used in the project Anyone with access to the repo can easily have this info without having to look for it in the wiki or trello board.

Describe the solution you'd like
We will use Zeplin.io to track changes in design

Pull latest stories from Medium.com

Description

Implement the stories section as laid out in the Zeplin designs and pull blog posts from the medium API

These changes should be done against feature/templates branch. These are PR and new branches created.

Screenshots

screen shot 2018-06-04 at 17 49 56

Tablet View

screen shot 2018-06-04 at 17 51 02

Mobile View

screen shot 2018-06-04 at 17 52 18

Files

Tasks

  • Create section
  • Create tablet view
  • Create mobile view
  • Pull stories from Medium
  • Style according to designs on Zeplin

Integrate HURUmap

Description

Include the CodeForAfricaLabs/HURUmap package into TAKWIMU.

Tasks

  • Add HURUmap to requirements.txt
  • Provide easy way to work with local development version
  • Tweak any settings as necessary

Add coming soon for the other 7 countries

Description

Because we will publish only for 3 countries in this first phase, we should create coming soon functionality for the rest.

Countries starting with:

  1. Tanzania
  2. Nigeria
  3. Senegal

We would use a combination of:

  1. Grayscale the flag icon
  2. Opacity to 0.8 / 0.7.
  3. Tooltip that says "coming soon"

Tasks

  • Add tooltip to "explore by country" section
  • Add tooltip to Navbar dropdown section

Placeholder sitemap and content

Description

Create default pages content for about us page, terms of use, and privacy policy.

Files

Trello board: https://trello.com/c/Mjq7e0DQ

Google Doc: https://drive.google.com/drive/folders/1Ych0US_14tiwFip0JSc-c5_dL_l2HacY?usp=sharing

Tasks

Include specific tasks in the order they need to be done in. Include links to specific lines of code where the task should happen at.

  • Create About Us page content
  • Create Privacy Policy page content
  • Create Terms of Use page content
  • Create Contact page content

[Media Centre] Implement Glossary

Description

This page should be created from the dashboard as a child of media center page

Screenshots

screen shot 2018-06-14 at 15 42 08

Tasks

  • Create Page Model as a child page of media centre page
  • Implement page as in the Zaang designs

Implement HTML5 Boilerplate

TAKWIMU will implement it's own template structure away from it's dependencies but should be set on a solid foundation.

HTML5 Boilerplate allows us to do that.

Part of this process will be to set up a templates directory structure similar to Jekyll

Explore other Data Section

Implement the explore other data section as laid out in the Zeplin designs.

These changes should be done against feature/templates branch. These are PR and new branches created.

Screenshots

screen shot 2018-06-04 at 17 20 16

Files

Tasks

  • Create section for desktop view
  • Add logic to grey out current country profile flag
  • Create Tablet View
  • Create Mobile View
  • Style according to Zepellin designs

[Media Centre] Implement Media Centre Page

Description

Implement the root of the media page, all other pages in this section will depend on this page. This page should be created from the dashboard

Screenshots

24 - toc copy

Tasks

  • Create Page Model
  • Design Page

Development readme guide

Description

Development guide for quick start when starting the project

Tasks

  • Server requirements
  • Installation process
  • Database setup
  • Static files
  • Run server

Add basic Django assets

Description

Currently the master branch is hosting the Github Pages + Jekyll powered landing page. We should therefore work on develop branch to create the web app that will be TAKWIMU.

Tasks

  • Create a feature branch with the basic workings of a Django app
  • Deploy app to staging server
  • ?

Front end initial setup

Description

Determine the blue accent color of takwimu

Tasks

  • Color pallet
  • Icons setup
  • Font setup
  • Bootstrap

Color Palette

newcolor

Design guidelines

Description

Sleek, intuitive, and powerful front-end design guideline for faster and easier development of takwimu platform.

Files

design-guideline

Tasks

  • Writing style
  • Typography
  • Logos
  • Primary palette
  • Secondary palette
  • Extended palette
  • Illustration

[Media Centre] Press Release Details Page

Description

This page should be created from the dashboard as a child of Press releases page

Screenshots

screen shot 2018-06-14 at 15 35 00

Tasks

  • Create Page Model as a child page of Press releases page
  • Implement page as in the Zaang designs

Implement Navbar Links with Popover

Description

When you hover over a link in navbar, we should create a popover similar to usafacts.org. To achieve this, we can use a simple CSS trick for on hover the nav link.

Screenshots

What we aspire:

screen shot 2018-06-08 at 11 49 48

Current:

screen shot 2018-06-08 at 16 18 01

Files

Tasks

  • Implement for About Us link
  • Implement for the rest of the buttons
  • Yay!

Make language selection in footer nav a dropdown.

Description

Add a drop-up menu in the footer section for languages that the platform will be translated into.

These changes should be done against develop branch. These are PR and new branches created.

Tasks

  • Add language dropdown

Add contribution guide

Description

Being an open source project, we should create a contribution guide from the onset to help with pointing contributors to resources, process, and other policies / code of conduct that improves the entire process.

Links

Some links we can borrow off:

Tasks

  • Create CONTRIBUTING.md
  • Add contribution section in README.md
  • If Contributor Covenant adopted, add to list of adopters

Use icons for social media links in footer nav

Description

Add social media icons (twitter | facebook | youtube | github) and their respective links

These changes should be done against develop branch. These are PR and new branches created.

Screenshots

Files

Tasks

  • Add social media icons
  • Add social media links

[Media Centre] Implement Resources and Stories Page

Description

This page should be created from the dashboard as a child of media center page

Screenshots

screen shot 2018-06-14 at 15 38 59

screen shot 2018-06-14 at 15 39 32

Tasks

  • Create Page Model as a child page of media centre page
  • Implement page as in the Zaang designs
  • Add video player modal

Add Content Management System

Description

After initially considering Django CMS, we will instead integrate Wagtail into TAKWIMU to offer a way to manage the content published on this platform including country profiles, blogs and site pages.

Some of the reasons choosing Wagtail over Django CMS include:

  1. StreamField offers interesting functionality similar to proto's card + stream approach to content.
  2. Being more recent, could offer newer techniques of problem solving.

Read more on choice here: http://www.djangopaths.com/why-did-i-choose-wagtail/#Integrating%20custom%20models%20and%20templates

Links

Tasks

  • Add wagtail to requirements
  • Write tests
  • Write documentation
  • User test

Add content licence

Other than having a software license, it's important to have a content license. The project's IP as envisioned by the funder in the Request for Concept Memo:

Intellectual property (IP) rights and the management of IP rights may play an important role in achieving the goals of this project. To this end, the Foundation requires that, even at this stage, all applicants seriously consider their willingness to submit a response in compliance with the Foundation’s response requirements, a portion of which may ask for certain information and intentions regarding intellectual property concerns and Global Access. Specifically, the Foundation requires that;

  • You will conduct and manage the Project and the Funded Developments in a manner that ensures Global Access. Your Global Access commitments will survive the term of the Agreement.“Funded Developments” means the products, services, processes, technologies, materials, software, data, other innovations, and intellectual property resulting from the Project (including modifications, improvements, and further developments to Background Technology). “Background Technology” means any and all products, services, processes, technologies, materials, software, data, or other innovations, and intellectual property created by You or a third party prior to or outside of the Project used as part of the Project. “Global Access” means: (a) the knowledge and information gained from the Project will be promptly and broadly disseminated; and (b) the Funded Developments will be made available and accessible at an affordable price (i) to people most in need within developing countries, or (ii) in support of the U.S. educational system and public libraries, as applicable to the Project.

Other than the option of having a copyright license on all content produced, the project can also provide it under a creative commons license.

[SDG] Explore by sustainable development goals

Description

Implement the SDG navigator Section as laid out in the Zeplin designs.

Screenshots

Step 1

Home Page
screen shot 2018-06-13 at 12 00 23

SDG landing page
screen shot 2018-06-13 at 12 18 32

Step 2

Agriculture not selected(grey) so all agriculture related SDGs are also greyed out
screen shot 2018-06-13 at 12 22 43

Step 3

screen shot 2018-06-13 at 12 24 11

Files

Tasks

  • Create the section
  • Add option to switch styles depending on which page this section is displayed e.g. {% include 'takwimu/_includes/report/section_sdg_nav.html' with page='homepage'%} would load the homepage styles and {% include 'takwimu/_includes/report/section_sdg_nav.html' with page='sdg_page'%} will show same section with SDG landing page styling
  • Style according to designs on Zeplin
  • Add animations and interactions

Create takwimu homepage template

Description

Create takwimu homepage template

Tasks

  • Header section => Main logo and search bar section
  • Map section => Map section with + a call to action modal at the center of the map
  • Menu stick bar => Sticky menu navbar
  • Features Section => Features | Services,Data and Community section
  • Story Section => Story divider and three feature stories
  • Partners Section => Section for partners logos
  • Footer => Create section containing a footer blurb and partner's logo section

Implement Navbar as in Designs

Description

Using Twitter Bootstrap, we should implement the navbar as laid out in the Zeplin designs.

These changes should be done against feature/templates branch. These are PR and new branches created.

Screenshots

screen shot 2018-06-04 at 10 58 55

Files

Tasks

  • Create basic blue navbar with Bootstrap (minus the "My Collections" button)
  • Create secondary navbar using flex
  • Add login/account button
  • Style according to designs on Zeplin

Create a simple landing page

Description

We should create a simple landing page to collect e-mail addresses and work as a "coming soon" page.

Screenshots

38874399-a64fef24-4260-11e8-83cd-76d038442467

Tasks

Include specific tasks in the order they need to be done in. Include links to specific lines of code where the task should happen at.

  • Create Mailchimp Account
  • Create landing page on Github Pages
  • Add Google Analytics UA-115543098-1
  • Add links to social media

[Media Centre] Implement Press Releases Page

Description

This page should be created from the dashboard as a child of media center page

Screenshots

screen shot 2018-06-14 at 15 31 06

Tasks

  • Create Page Model as a child page of media centre page
  • Implement page as in the Zaang designs

Use Django dumpdata instead of SQL script

Is your feature request related to a problem? Please describe.
I'm always frustrated when I have to seed the database using SQL commands

Describe the solution you'd like
It would be preferable to use Django's dumpdata and loaddata commands instead - https://docs.djangoproject.com/en/1.9/ref/django-admin/#django-admin-dumpdata

Describe alternatives you've considered
N/A
Additional context

< Add any other context or screenshots about the feature request here. >

Add Github templates

For contribution alignment, we should add the Github templates used in other project.

Add countries admin to CMS

Description

For countries, we'll be having narrative text to go with the data indicators. We therefore require a section in the CMS to edit the information on this. To note:

  1. The country pages will be automatically populated from the geographies table and users will not be able to add to this.
  2. The page template will inherit a normal profile_details.html template?
  3. The template will only be used for the country level so there is business logic to selecting template in backend

Files

Tasks

  • Create countries admin section
  • Create countries template #25
  • ?

Add Community Forums

Description

Part of the process with TAKWIMU is building an active community and a forum could offer a space to engage constructively with it (community) and it with itself. We should therefore look at a way of adding forum functionality. Our current options include:

  1. A Django app/module that already does this but with that is at par with or better than - https://djangopackages.org/grids/g/forums/;
  2. Discourse - the gold standard in self-hosted forum software.
  3. Zendesk Guide's Community feature - because we'll already have most our user on Zendesk for support, combined with the documentation, this offers a promising place.

Tasks

  • Research Django options for forums
  • Get approval on suggested direction
  • Add community forum

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.