Giter VIP home page Giter VIP logo

serve-still-more's Introduction

Serve-Still-More

serve still more

**This project is inspired by the people of Lost River Church**

The sister database repo can be found here

Description

In the Spring of 2020, the pandemic forced everyone to stay home. Church attendance was no exception. Having the ability to live stream a worship service was an excellent way to continue to give glory to God along with other members of the church. However, virtual church was no substitute for seeing familiar faces and keeping up with one another's lives the same as worshipping next to someone.

The Elders of Lost River Church set out to stay connected with all of the church members by calling everyone on a regular schedule. This ensured everyone's needs were heard and helped, specific prayers could be made, and everyone could maintain some sense of feeling like they were not alone.

The system for keeping up with how everyone was to be contacted involved a lot of manual data entry and a single excel spreadsheet. This app sets out to make the process automated, streamlined, and undoubtedly improve the process.

About the Project

REACT

The entire application was built on React version 17.0.2

When visiting the site, the user is immediately met with a login screen where they can log in or register as a new user.

login screen

Logging in is not true authentication as it only checks the data in the database to see if the user exists and stores that uses specific key in the session storage of the browser.

Session Storage

Depending on if the user specified thier role as an elder or a deacon upon registration, they will be presented with one of two dashboards.

The people in the church were equally put into groups to provide smaller groups of people to keep up with

The elder dashboard displays all of the groups and the role of each person in the group

Elder Dashboard

The elder can click on any member in any group to view thier information, edit their information, or delete them from the database.

Member Detail Screen

On the right hand side of the page, the elder can view messages in their assigned group that are to be shared to the deacons specifically (ie., tasks and events that need to be resolved or arranged) and also to the members (ie., information the deacons can share with the members when they call them). The elder can create a new news and notes for their group.

News Form

If a new member joins the church, they can be added to the member database and assigned to a group through the new member form. The form is accessed in the nav bar.

First Member Form Screen

The deacon dashboard displays a list of members in your group. It also has a section that displays the members that:

  • You, as a deacon, did not call previously
  • Have never been called
  • Have not been called since the beginning of the calendar week

Deacon Dashboard

The deacon can click on any member in the list to view thier information, edit their information, or delete them from the database.

Edit Member Screen

There is a text input box to record any conversations for the phone call that may be useful to pick up on the next time the member is called. The submission of the text marks the member as called and they disappear from the members to be called.

Below the text input there is a history section that displays all of the past records of phone conversations, when they occured, and who the conversation was with.

Conversation History

On the right hand side of the page, the deacon can view messages in their assigned group that was written to them specifically (ie., tasks and events that need to be resolved or arranged) and also to the members (ie., information to share with the members when they call them).

If a new member joins the church, they can be added to the member database and assigned to a group through the new member form. The form is accessed in the nav bar.

CSS

Everything was styled using vanilla CSS styling by dedicated CSS files and in-line styling.

Other Resources

Challenges

When declaring a state variable and assigning its value as a subset of data from the database, I struggled with updating the DOM with the latest data. This was overcome by updating the data inside a function and placing the function call in a useEffect that ran whenever the data in the database changed. Ex: Call List Component, History Component

Project setup

For the Database:

git clone [email protected]:nch66862/serve-still-more-api.git

Open the file in a code editor. Rename db.json.example to be db.json then save.

In the same directory, use this command in the terminal to start the JSON server:

json-server -p 8088 -w db.json

For the Site:

git clone [email protected]:nch66862/serve-still-more.git
npm install
npm start

Future scope

There are a few features that would greatly enhance the usability of the site for the leaders of the church. My plans to improve this application are:

  • Create Families. Currently if a husband, wife, and kids are all in the database they would all show up on the call list. Grouping them together as a family and identifying one of them as a primary contact would allow everyone to stay in the database but only the primary contact of the family to show up under the list of members to call.
  • Reorganize the database structure so that members are a part of the user table. The information is redundant and making this change would open the door for a personalized page for members in the future.
  • Add photos to the each member account
  • Mark somoene as a person who does not want to be called. Sometimes people request that they not be contacted. So implementing a toggle in the member settings would keep them from showing up in the call list.
  • Prayer requests and special notes. Sometimes call notes can get lost in the history. This information would be separate from call history and stayed pinned at the top so that callers always have this information in front of their eyes before they make the phone call.

serve-still-more's People

Contributors

nch66862 avatar

Stargazers

 avatar

serve-still-more's Issues

Families

Given multiple members are members of the same family, the user will be provided an affordance to create a group called a family.

When the user performs a gesture to create a new family, they will be provided an affordance to assign a primary member of the family and other secondary members.

The assigned primary member will be the only member to show up on the call list of the deacons.

Deacon Accounts/Call List

Given that the logged in user is a deacon, they will be provided a list of members to call for the week and their contact information. The user will also have an affordance to input the topic of conversation during their call. The user will have an affordance to view a history of past phone call documentation for the currently selected member.

Given the deacon performs a gesture to save the inputted data, the data will be saved to the database and the member will be marked as called for the week.

Elder Accounts

Given a logged in user is an elder, the user will be able to view all other accounts. The user will have an affordance to edit any existing member.

The user will also be given an affordance to add groups.

The user will also be given an affordance to input news and notes.

When the user performs the gesture to edit, the user will be given an affordance to delete the account.

Registration

Given a user wants to log in but does not have an account, they have an affordance to create one.

When the user uses that affordance, then they will be provided with a way to input their information.

Given the user has provided all needed information, they will be given an affordance to create an account.

When the account is created, it will be saved to the database

Do Not Call

Given a member does not want to be called, the user will be given an affordance to modify the settings of the member. The settings modification will indicate to the user that the member does not want to be contacted.

Add Photos to Accounts

Given a user wants to add a photo to an account, the user will have an affordance to do so.

Given an account has a photo, when a user navigates to the appropriate screen, the photo will be displayed.

News and Notes

Given the logged in user is an elder, the user will have an affordance to input news and notes for the current week.

When the user has performed the gesture to save the news and notes, the news and notes will be saved to the database.

Given a logged in user is a deacon, they will be able to view the news and notes from their calling screen.

Member Accounts

Given a logged in user wants to create a new member, they will have an affordance to do so.

When the logged in user provides all necessary information for the member and performs a gesture to save the new entry, the member will be saved to the database.

Given the information of a member needs to change, when the user performs a gesture to edit the information, they will also be provided an affordance to delete the account.

The newly created member account will be added to the call list of a certain deacon in the same assigned group.

Groups

Given a user has signed in as an elder, they will be provided an affordance to create a new group.

When the user has performed the gesture to create a new group, a new group will be created in the database.

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.