Skip to content
Jacob Fredericksen edited this page Mar 9, 2021 · 8 revisions

Mission

ModularHistory's mission and purpose is to help people to learn about and understand history, view current events in their historical context, avoid errors of the past, and contribute to the future. To accomplish this purpose, our volunteers gather and organize historical information regarding the patterns of human moral and intellectual progress, highlighting the roles and contributions of scientists, scholars, statespersons, philosophers, and religious leaders; gather and transcribe the contents of historical documents; contribute to our database of modularized historical information; and make all gathered information accessible at ModularHistory.com.

ModularHistory is a 501(c)(3) nonprofit organization.

Tech Stack

ModularHistory.com is a web application built with a tech stack including Django, Next.js, PostgreSQL, Nginx, and Docker.

  • Django, a Python web framework, powers ModularHistory's back end and much of its current front end. Django is used to power the API that makes ModularHistory's data accessible to its front-end Next.js application (which powers interactive pages on the website).
  • Next.js, a React framework, is used for some of ModularHistory's interactive pages. ModularHistory's Nginx server determines whether to route a request to the Django server or the Next.js server. When the Next.js server receives requests, it in turn makes requests to ModularHistory's (Django) API to retrieve data. Eventually, when Django templates and JavaScript files are converted to JSX/TSX files, Next.js will power most of ModularHistory's front end.
  • PostgreSQL is ModularHistory's database engine. Django interacts with the database.
  • Nginx is used as a reverse proxy to serve static files (JS, CSS, media files, etc.) and route other requests to ModularHistory's Django and Next.js servers.
  • Docker and Docker Compose are used to reliably connect the processes that power ModularHistory, in both development and production environments.

Contribution Guidelines

See Contribution Guidelines.

Clone this wiki locally