/hackathon-portal-client

A comprehensive portal for hackathons where students can submit their work and judges can evaluate in one place. It is an app that helps you organize and evaluate Hackathons.

Primary LanguageJavaScriptMIT LicenseMIT

Build Status Coverage Status Netlify Status

Hackton

Deployment

You can find the deployed project at Hackathon.

Project Overview

Trello Board

Product Release Canvases

Summary:

A comprehensive portal for hackathons where students can submit their work and judges can evaluate in one place. It is an app that helps you organize and evaluate Hackathons.

Table of Content

  1. Getting started
  1. Running the tests
  2. Technology stack
  3. Versioning
  4. Contributing
  5. Authors
  6. Acknowledgments
  7. License

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. Note that this repository contains only the frontend implementation of the Hackathon project. You can click here to check the backend implementation.

Prerequisites

To get started with this project you need a basic knowledge of the following.

Javascript (ES6)
NodeJs
SQL (Postgres)
Version Control (Git)

Installation

  • Start by cloning the repository to your local machine
git clone https://github.com/Labs-EU4/hackathon-portal-client.git
  • Next install the package dependencies by running; this can be npm or `yarn
npm install
  • After that start or build the application by running npm start or yarn start
npm start # For a local development

Enviroment Variables

The following should be inside .env file for the app to function correctly.

REACT_APP_API_URL='https://hackton-staging.herokuapp.com'

Running the tests

Run npm test or yarn test in the console.

npm test

Technology Stack

  • React - The web framework used.
  • Redux-saga - State management tool.
  • Styled-components - Used to generate styles.
  • Formik - Component that helps with building forms
  • Moment - A free and open source JavaScript library that removes the need to use the native JavaScript Date object directly.
  • Coveralls - Ensure all code is covered by test suite.
  • Jwt-Decode - A library to decode jwt tokens.
  • Dotenv - A zero-dependency module that loads environment variables from a .env file into process.env.
  • Query-string - Used to retrieve the variable values in the HTTP query string.
  • Eslint - A tool for identifying and reporting on patterns found in ECMAScript/JavaScript code, with the goal of making code more consistent and avoiding bugs.

Version

This is version 2.0.1

Contributing

When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.

Please note we have a code of conduct. Please follow it in all your interactions with the project.

Issue/Bug Request

If you are having an issue with the existing project code, please submit a bug report under the following guidelines:

  • Check first to see if your issue has already been reported.
  • Check to see if the issue has recently been fixed by attempting to reproduce the issue using the latest master branch in the repository.
  • Create a live example of the problem.
  • Submit a detailed bug report including your environment & browser, steps to reproduce the issue, actual and expected outcomes, where you believe the issue is originating from, and any potential solutions you have considered.

Feature Requests

We would love to hear from you about new features which would improve this app and further the aims of our project. Please provide as much detail and information as possible to show us why you think your new feature should be implemented.

Pull Requests

If you have developed a patch, bug fix, or new feature that would improve this app, please submit a pull request. It is best to communicate your ideas with the developers first before investing a great deal of time into a pull request to ensure that it will mesh smoothly with the project.

Remember that this project is licensed under the MIT license, and by submitting a pull request, you agree that your work will be, too.

Pull Request Guidelines

  • Ensure any install or build dependencies are removed before the end of the layer when doing a build.
  • Update the README.md with details of changes to the interface, including new plist variables, exposed ports, useful file locations and container parameters.
  • Ensure that your code conforms to our existing code conventions and test coverage.
  • Include the relevant issue number, if applicable.
  • You may merge the Pull Request in once you have the sign-off of two other developers, or if you do not have permission to do that, you may request the second reviewer to merge it for you.

Authors

Anthony Campbell AbdelIdir Ekanem David
Team Leader Dev Dev

Emma Andrews John Afolabi Karim Bertacche
Dev Dev Dev

Acknowledgments

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

The MIT License (MIT)

Copyright (c) 2020 Hacktahon

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.