Giter VIP home page Giter VIP logo

mwpf's Introduction

Muslim Women's Popular Fiction database

Created to support the Muslim Women's Popular Fiction module run at the University of Birmingham.

The database is managed in Contentful, transformed into Schema.org models and then served through a custom JavaScript frontend.

To run locally, run make sync to download the database and transform it into a JSON file. Then make up to serve the application. There's no compilation or build step.

You'll need to create a .env file containing the Contentful space and API key.

Technical decisions

I used the Schema.org architecture because I love structured data and I'm doing other stuff with it elsewhere. It also means the frontend application uses a consistent data structure: any changes to the Contentful model just need to be handled by the transformer.

I didn't use a JavaScript frontend because I didn't need to, and the bespoke version is much smaller than anything a frontend framework would spit out. To keep it feasible I'm also using quite a lot of modern language features, which comes at the cost of older browser support.

I used GitHub Actions because they're easy to set up when the repo's already here, but it's just an rsync job so the task runner is pretty inconsequential.

mwpf's People

Contributors

dependabot[bot] avatar gregtyler avatar renovate[bot] avatar

Watchers

 avatar  avatar

mwpf's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/scheduled-deploy.yml
  • actions/checkout v4
npm
package.json
  • contentful ^10.6.7
  • nunjucks ^3.2.4
  • sharp ^0.33.4
  • nodemon ^3.1.4
  • prettier-plugin-jinja-template ^1.4.1

  • Check this box to trigger a request for Renovate to run again on this repository

Exclude illustrators from list of creators

The list of creators shouldn't include people who are only tagged as illustrators: instead the list should be people who are the core creator or director of at least one work.

This is to keep the list of creators true to the original database goal: a list of Muslim women creators.

Convert app to use standardised schema

We currently just use whatever data model is sent by contentful (e.g. novel.genre[0].genre). Perhaps we should transform data on arrival to a standard form (e.g. schema.org/CreativeWork) and work with that.

That means changes to the content model only have to be reflected in the transformation process, and we have a consistent format if we ever need to migrate.

If #14 leads to serving our own content, this could be even more valid: we'd regularly pull from contentful and convert to a JSON object of schema.org items, then serve them to the app.

Add hosting config to repo

In current state this means: include nginx file and certbot config. Maybe also add them to deployment pipeline?

However, may want to rearrange hosting to e.g. use Docker images and be completely self-contained. Or just simplify my statically hosted sites.

Fix issue with missing tags

We currently skip over tags which are "missing", but what's actually happening there? Have we hit the 1000 limit already?

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.