Giter Site home page Giter Site logo

mlh-hackathon-nodejs-starter's People

Contributors

chancesm avatar dependabot[bot] avatar iflameing avatar mkcode avatar nlaz avatar

Stargazers

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

Watchers

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

mlh-hackathon-nodejs-starter's Issues

Add Google/Twitter OAuth authentication

Description

We probably want to support additional authentication methods with the starter kit. Support for Google/Twitter will allow app people to be able to use their other social media accounts to use the app. Hackers will probably find this more useful if they are building apps using those services.

It might be worth adding Passport to manage these different authentication methods.

Additional step about database setup in user guide

Hello! I ran into some errors when following along the tutorial and these were what I did to fix them:

  • Ensuring the database specified in databases.json exists in the local Postgres server (e.g. running 'CREATE DATABASE nodejs-starter-dev' command in psql shell)
  • Adding username and password keys in databases.json
  • Installing Sequelize CLI and applying migrations to create the 'Users' table (https://sequelize.org/master/manual/migrations.html)

I'm not sure if it was just me missing something but it feels like the guide might benefit from an additional step about database setup.
Would appreciate any thoughts on this. Thanks!

Add MyMLH authentication

Description

Similar to support for GitHub, Twitter, or Google authentication, we would also like to support MyMLH authentication. This is a login system used at MLH events, we use it for things like checking out hardware, registering for events, online challenges, our deprecated mentor system, and we have plans to add it into more properties. A lot of hackathon attendees will likely already have a MyMLH account.

We built MyMLH back in 2015 so its due for an update soon. However, we have decent documentation and I'm happy to support anything we need to get this to work. I would personally be thrilled if this was supported.

Some helpful references, we have an OmniAuth strategy available and an example Flask app.

Support MongoDB as a database

Description

This starter kit supports a typical SQL-type database using PostgresSQL and Sequelize. We did this because relational databases can be more reliable and can have less gotchas (I know this is a matter of opinion). However, it might be prudent to support a NoSQL-type database like MongoDB because it can be quicker to build a hackathon project with. A hackathon project can benefit from flexible data schemas using MongoDB. MongoDB also has a bunch of documentation to help beginners through using it.

To integrate MongoDB into this project, it might be smart to use a library like mongoose to help with object querying.

I wouldn't like to simply replace our PostgresSQL/Sequelize code with MongoDB/mongoose code. Ideally, people can choose from one or the other. If this requires setting up a separate repo, that is possible or we can create a script for creating a example project similar to create-react-app or create-next-app.

Additionally, it would be great to add documentation around what is MongoDB, how to use it, and how to get it running locally and how to deploy.

Add more API examples

Description

Similar to the GitHub API example, we should add more API examples to act as reference to people to learn and build projects faster. Some frequently used APIs are Google Cloud, Google Maps, Twitter, Instagram, Twilio/Sendgrid.

This should include documentation on how to setup those examples for their project.

Add Email/Password authentication

Description

Some hackathon projects will want to be able to use their own login system. Our example app should support users signing up and logging on using typical email/password credentials. This was not included originally with the starter kit because (IMHO) it adds unneeded complexity to applications to support custom logins. However, our starter kit should probably be more flexible.

Support ReactJS for frontend views

Description

A lot of attendees are interested in learning to use Javascript frontend frameworks like React. This was not included in the first version of the starter kit because keeping a client-side app in-sync with a server is a bit complicated and we want to make this project friendly to beginners. However, I think we could come up with a way to support a client-side framework like React, be simple/clear for beginners, and save a lot of headaches for people trying to add it on their own.

Here are a few considerations for supporting React on this project.

  • Handling secure requests - Looking into how to make secure API requests using JWTs and determining how to store that information on the client-side.
  • Single launch point - Some example projects using two separate apps for a React + Express stack. It would be ideal to use a single launch point for attendees to run this project. It might be
  • Flash of unstyled content - This is a common issue with React projects because components is frequently rendered before "hydrating" the app with information. Let's try to avoid this if possible.

A good model to follow might be how Next.js handles server-rendered apps with Express. If this became Next.js + Express app, I would be very happy.

Sidenote: A lot of people like to bundle React together with a state management tool like Redux or a query language like GraphQL. These technologies likely don't solve the needs for 90% of hackathon projects and introduce additional complexity and barriers of entry for beginners. Supporting these technologies should be a separate discussion from supporting React.

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.