Giter Club home page Giter Club logo

naparc-next's Introduction

NAPARC Search

Visit the live site at: https://naparcsearch.com.

The Problem

NAPARC stands for the North American Presbyterian and Reformed Council, and it consists of 13 different Protestant denominations. Each of these denominations has their own online church directory, but they are not able to be searched in any one location. This makes it pretty tedious checking each individual website for a congregation in any given area.

The Solution

The goal of this project is to make each denomination within NAPARC searchable in one location online, and that is the goal of this app. Let me give you a tour.

The Scrapers

I wrote 8 (the rest are coming soon!) web scrapers with Cheerio.js to grab the congregations from each denominations directory. These are in the naparc-backend app, and they each feed their results mongoDB.

Before my recent move to Next.js for this project, these scrapers were running via node-chron on a Linode server. Now that the project is in Next.js, the scrapers are triggered via Github Actions and the Next.js API endpoints. Since the serverless functions deployed to Vercel timeout before my scrapers can finish (sad), I deployed the scrapers as a seperate app on Heroku. It only spins up and runs when a request comes in with the appropriate auth from this repo, runs the scrapers, and updates the DB. This app handles the DB calls from the Next.js API routes. Nice!

The Front End

The main feature on the front end of this project is the search bar itself. When the user enters a search location, I am using the GeoApify Autocomplete API in order to populate suggested location results. The longitude and latitude of the search query is sent back to the server, matched against the locations in the database, and the results are sent back to the client to populate the results.

There are also some other filter options too. The user can select which denominations to include in their search, and they can set a particular radius for their results.

All the styling is done in styled components.

naparc-next's People

Contributors

zfixler avatar dependabot[bot] avatar

Watchers

 avatar

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.