Giter Site home page Giter Site logo

hackmcgill / hackerapi Goto Github PK

View Code? Open in Web Editor NEW
21.0 4.0 8.0 4.36 MB

πŸ“ API for registration, live-site

Home Page: https://api.mchacks.ca

License: MIT License

JavaScript 69.46% Shell 0.29% Dockerfile 0.02% Python 3.09% Handlebars 27.14% Procfile 0.01%
registration api-rest expressjs hackathon nodejs-server mcgill montreal

hackerapi's Introduction

hackerAPI

API for registration, live-site

Builds

Master

Build Status

Develop

Build Status

How to use and contribute

See documentation here: https://docs.mchacks.ca

Deploy

Deploy

hackerapi's People

Contributors

brarsanmol avatar chenxuan-zhou avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar jackyyzhang03 avatar jamesxu123 avatar krubenok avatar logan-r avatar loreina avatar manethkulatunge avatar meldunn avatar nima200 avatar pashakondratyev avatar pengyk avatar pierretklein avatar printharsh avatar rohitgarudadri avatar tony9984 avatar ty-won avatar yifeizhang2 avatar

Stargazers

 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

hackerapi's Issues

CSV Exports

As an admin or a sponsor, I want to be able to export information generated from my queries in order to manipulate it offline.

User Invitations

As an admin, I want to invite users to create accounts in order for them to participate in the hackathon.

Account Creation

As a hacker I would like to create an account to be able to apply to McHacks.

Investigate search routing

How do other services implement search + modify on their database?

Let’s investigate this and take inspiration from what others have done.

Upload resume route

  • User uploads file
  • User must provide hacker ID
  • Account must be associated with hacker ID
  • Upload file, then update location of file in account schema.

Sent with GitHawk

Implement pagination

As a searcher of the database, I do not want to be given ALL of the results (since there could be too many). Instead, I want to receive only a subset of them, i.e. a page of results.

Build route to update hacker status to 'checked-in'

If there is no available space at the hackathon, the hacker must be:

accepted, and confirmed attendance

Else, the hacker can be at any stage of the pipeline beyond 'applied'.
You should be able to check in a Hacker via email. QR code encodes for email.

Base skeleton

Setup the base skeleton for the deployment on Kubernetes cluster on Google Cloud

Create unit tests for current routes and check for correctness

The goal is to finish up unit tests for the rest of the current routes and methods by mid next week (August 8 ish). To do this, unit test setup will have to be created. The full list is as follows:

Unit test setup to be done:

  • skill.test.util.js
  • sponsor.test.util.js
  • staff.test.util.js
  • team.test.util.js
  • volunteer.test.util.js

The unit tests will cover routes for:

  • accounts
  • auth
  • hacker
    -team

The unit tests will cover services for:

  • accounts
  • auth
  • database
  • hacker
  • permission
  • skill
  • team

The unit tests will cover middleware for:

  • account validator
  • hacker validator
  • team validator
  • validator helper
  • account middleware
  • auth middleware

The unit tests will cover controllers for:

  • accounts
  • auth
  • hacker

Unit tests for models may be needed

Design and create routes for create functions

Design route grouping and create the routes for the creates for all models. This will happen after writing unit tests for the current methods (issue 31). The expectation is that filter will be complete by this time, and permissions will be fleshed out. The projected timeline for this is 2 weeks.

Integrate OAuth for login

Enabling OAuth support for passport.js to allow for logins with Google, Facebook, Twitter, Github, LinkedIn, etc....

Hacker Check-In

As a staff member, I want to check hackers in so that I can keep track of who is at the hackathon.

User Email

As an admin, I would like to send emails to a list of people in order to inform them about hackathon related information

Update error messages to be more informative

Update the error messages in different controllers. The goal is to create more descriptive messages that give more of an idea to what the error is and to make sure that we produce the same error message for the same error. For example, failure to retrieve a hacker due to an invalid id should produce the same error as a failure to retrieve a sponsor due to an invalid id except for replacing 'hacker' with 'sponsor'.

User filtering

As a User, I want to filter users by different criteria in order to perform bulk actions or view information.

Invite links to create account with tokens

  • Users who create an account should be sent an email to create the specific profile of account that they signed up for.
  • Examples:
    As a hacker, when I create an account, I should receive an email to confirm my account with a link to fill out my hacker profile. This link contains an auth token which is used to allow the given user to create ONE hacker profile with the associated account.

This is the same flow for all other types of accounts.

Flow for account creation:

[ create account ] -> [ get email to create hacker / sponsor / volunteer account ] -> [ click link, which contains auth token in URL ] -> [ front-end takes auth token and passes that to the API with account data ] -> [ backend validates token, creates account, makes token no longer valid ]

Hacker Applications

As a hacker I would like to fill out and submit my application to McHacks to be able to potentially attend the Hackathon.

Update Account and Hacker schemas to include new fields per MLH request

Hacker

Ethnicity: American Indian or Alaskan Native | Asian / Pacific Islander | Black or African American | Black or African American | Hispanic | White / Caucasian | Multiple ethnicity / Other (Please Specify) | Prefer not to answer
Major: String
Graduation year: Number
codeOfConduct: Boolean

Account

Birthdate: Date
Phone number: String

All fields are required.

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.