Giter VIP home page Giter VIP logo

the_sylar_project's Introduction

The Sylar Project

Production Link ๐Ÿ‘‰ https://www.sylarproject.com/

Prerequisites

You will need Node.js version 11.0 or greater installed on your system.

Setup

Make a fork of this repository and make sure that your code is up to date with the develop branch not main. Main is what is in production however you will be making a pull request to the develop branch make sure to keep things up to date there.

Once you clone your fork, open the terminal in the project directory, and install dependencies with:

npm install

Then start the example app with:

npm run dev

The app should now be up and running at http://localhost:3000 ๐Ÿš€

Note: If you do not have an API key for the Airtable Database, please uncomment the code in

pages/api/getResources

Contributing

Create a branch with your work. Make sure your branch is up to date with the develop branch on this repo! Your branch should be named using your initials and the feature you worked on. For example if I added more mental health resources to the API I would name my branch like this:

rc/addApiResources

Open a pull request to the develop branch and once reviewed if no changes are needed your code will be merged in!

Custom Sylar Project for your Local Community

If you would like to build a custom version of the Sylar Project for your country or community I encourage it! You can use the Deploy to Digital Ocean Button below and get a working deployment of this right away. Make a PR to this Readme with the link to your version so I can feature it here!

Deploy to DO

the_sylar_project's People

Contributors

gabrielhicks avatar jeffreyhshapiro avatar jordanlong1 avatar rahat-ch avatar shravan20 avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

the_sylar_project's Issues

Combine Title into Nav

Currently the main header title and the Nave are two different components. We need to move "The Sylar Project" into the nave and make the text white so it's readable on the dark background it gets moved to.

See image attachment below to see what I'm referring to. This is a great first issue and happy to help any first time contributors through this PR.

Screen Shot 2021-01-02 at 5 14 28 PM

Add state/region to query param

Currently there's no way to share the resources of a specific state. When we bring up a certain states resources the change should be that the region is appended in a query param to the URL. If we have the card list show content based on which state is in the query param then someone can quickly share a link directly to those resources.

Example:

http://localhost:3000?location=alaska

If we hit this url we should automatically get all Alaska resources listed.

DRY out the form

The current implementation of the form is a bit repetitive I want to refactor it and create inputs dynamically in the form. We can put any static form data inside of a new js file in the data folder.

Note that this story is only for making the code more DRY. If you see other form issues please check if there is already an issue created with the Form Refactoring label.

Twitter Image Issue

Currently when sharing the link on social media sites like Twitter - the social media card is not displaying an image. Please look into the Head component in pages/index.js to implement a fix.

Acceptance criteria: We should be able to see the hero image displayed in the twitter social sharing card when sharing the link to the site on social media.

Add Jest/React Testing Library

Configure React Testing Library and inmplement a small test as an example. Include any documentation for how tests should be run in readme.

Backend Discussion

At the moment the data is served via an API Route that is just serving a JSON object. I would love thoughts on what might be good for the backend of this project. The current implementation is to make it easy for anyone to fork and use this for their local areas. I would like to keep ease of use if forked to be taken into consideration for whatever the backend ends up becoming.

A11y - Label should have associated control

Currently for labels in the form we are getting the following listing error:
A form label must be associated with a control.eslint(jsx-a11y/label-has-associated-control)

Need to refactor the code to have the label associated with a control. This may require some changes on styling in addition to structural changes. See the documentation below for an idea on where to start:

https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/label-has-associated-control.md

Remove the eslint disable in components/NewResourceOverlay/form.js to see the error

Why is the develop branch failing to load?

I've forked this repo, cloned it to my local machine, uncommented the code in pages/api/getResources, and run npm install followed by npm run dev. When I try to view the site using http://localhost:3000, I get the following error.

error - ./components/NewResourceOverlay/form.js:7:0
Module not found: Can't resolve './confirmation'

5 | import { DropdownContext } from '../../contexts/DropdownContext'
6 |
7 | import Confirmation from './confirmation'
8 | import {
9 | NAME,
10 | LINK,

(I've checked, and there is no components/NewResourceOverlay/confirmation.js.)

Because of this problem, I'm unable to test the part of the code I'm working on. Is this a mistake; what should I do about it?

Add more resources

I am one person going through and adding resources. Please feel free to add resources in your local area in order to have more options available. For now this will be done state by state.

You can add mental health resources in data/usData.js

If adding resources for another country - create a new file and name it data/${country name}.js

Please follow the same formatting as uses in usData.js and indiaData.js

New country pages will be created once there are at least five resources listed in the country

UI Enhancements

Any PR's or work to help improve on the UI and make it look more aesthetically pleasing will be much appreciated. I do still want to keep it to a minimal style however I think the current design is a bit empty. (I am but a humble developer).

If you see improvements or refactors in the way I implemented code that is also completely fine if it helps enhance overall UI or makes it easier to add items as we go along.

Github Actions ci/cd pipeline

Once tests, linting, husky is all set up set up a github action for running builds when pull requests are open to the develop branch as well as the main branch

PR Template

Trying to figure out best practice for PR's happy to take any suggestions or if anyone has something they can implement then by all means!

Instructions for this should also be added to the ReadMe

Add Unit Tests

Would love some help adding unit/integration test in the code. I think we can start with components that have props as well as the providers. I'd say those are the most important ones to be tested at the moment. If you would like to take on a specific component to test just ping me on this thread. An example of a test is available in ./components/Header/index.spec.js

Use regular dropdown instead of Tailwind UI dropdown

The current dropdown on the main page doesn't function great on mobile. Let's replace it with the native dropdown similar to the one in add new resource overlay. This will also let us remove a bunch of unnecessary javascript code to make the current dropdown function properly.

Implement Dark Mode

I'd like to have a dark mode option. Below is documentation that will help implement Dark Mode using Tailwind:

https://tailwindcss.com/docs/dark-mode

We will need some JavaScript work to create a toggle component that switches between dark and light modes. It would also be a good user experience if we can dynamically enter each mode based on the users default preferences.

Color considerations (I am open to more suggestions)

Background - dark grey/ dark blue

Text - white/light grey

Button - lighter blue Iif we do a dark blue background

Update save button color to match main page

Currently teh save button in the add new resource overlay is purple - adjust it to be the same colors as the Add new Resource button on the home page. This should only require a change in class name please compare buttons to see what classes are missing.

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.