GithubHelp home page GithubHelp logo

31242-aip's People

Contributors

ckesoglou avatar hjsith avatar kevinleung56 avatar piploop avatar seant1 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

31242-aip's Issues

Decide on a unit testing framework

This depends on the front-end framework we end up choosing in #1.

Arguably the most common unit testing frameworks are Jasmine, Mocha & Jest. Feel free to add your own poll options using gh-polls if you have any other suggestions.



Update ERD to be consistent with schema.sql

While addressing feedback in #10, there was a number of changes made to what would become the final database schema.sql file. However, not all of these changes are currently present in erd.png (such as the removal of the is_admin attribute on users).

The ERD needs to be updated to ensure consistent documentation.

Decide on JavaScript or TypeScript

TypeScript provides static type checking (allowing errors to be caught early at compile time), but comes with a lot of syntax overhead. Javascript or TypeScript are both valid choices but must be used throughout according to spec. This probably includes the code for whatever front-end framework we decide in #1 .


Sign up - Frontend implementation

AC:

  • form including username, display name, password
  • loading animation
  • disabled button after click
  • validation?
  • redirect to homepage

Add contribution documentation for development

As various members have worked on designing, building and solving different parts of this project for the first time, we all possess knowledge unique to our sections that may not necessarily be known to the entire team (such as how to approach or complete issues, or how to structure it to maintain consistency).

To help each other as we continue to now work on other sections of projects, we should all contribute to a write up in the README of how to go about contributing to each aspect of the software.

These can include:

  • How to do API designs (including recommended tools) and how to generate the documentation
  • How to utilise environment variables and connect the backend to the database
  • Structure of code within the backend and what test libraries/methods to utilise
  • Structure of code within the frontend and what test libraries/methods to utilise
  • Anything else you believe would be useful knowledge to possess, or needs to be consistent throughout the project

Browse Requests - Frontend implementation

Please note that filtering by keyword AND/OR by reward item is required by the spec.

You may also want to consider allowing user defined ordering (assuming the api has support for it)

Currently blocked by #35

Requests - Backend implementation

This endpoint does not require authentication. EDIT: the linked pull request also implemented the rest of the requests backend endpoint (rather than just browse), including some that required authentication.

Currently blocked by #35

Continuous integration script is not running npm build correctly

A deployment job was cancelled at the build stage after warnings were encountered (since these are automatically treated as errors by the deployment script). This behaviour may be good to keep, but should have been caught at the continuous integration testing stage when the pull request was created.

Looks like the ci script calls npm build when it should be npm run build - it is currently not correctly building the project.

Requests - API Design

All open (incomplete) requests should be viewable by both authenticated and unauthenticated (anonymous) users.

This issue covers the API design for this feature. It should NOT include the endpoints needed to create nor complete the request, only view.

Consider the following when designing this API:

  • How to order the items in the response by default
  • Whether or not to allow custom ordering by the user in the request and how to do it
  • How to implement custom filtering by the user in the request. Filtering by keyword(s) or by reward items is required at a minimum by the spec
  • How to handle situations where 1000+ open requests can be returned (API pagination? From/to index?)

Create a privacy policy

Based on the data this application will collect and the ways it will be processed, create a privacy policy txt document that will be linked to and displayed by the application.

Unresolved merge conflicts in master branch

It appears the same merge (#43) that caused problems in the CD script (#46) also include at least one other file with unresolved conflicts, found in docs/API Specification.md.

The origin of this conflict appears to stem from a3c1a32, which at the time also included conflicts in:

  • .github/workflows/continuous-deployment.yml
  • docs/API Specification.md
  • react/src/api/endpoints.tsx
  • react/src/assets/css/login.css
  • react/src/components/App.test.tsx
  • react/src/components/App.tsx
  • react/src/components/theme.test.tsx
  • react/src/index.tsx
  • react/src/pages/README.md
  • react/src/pages/login.test.tsx
  • react/src/pages/login.tsx

I imagine most of these have been resolved since then, however we should definitely go through and double check there aren't anymore outstanding conflicts beyond the API Specification file.

Decide on a cloud provider

We need to decide on a cloud provider to host the application and database. Through various channels, we can essentially get free credit from any of the major providers. Consider the ease of use in deploying to these services (perhaps even automated deployment with any master branch changes).




User Profile - API design

This issue is to create the api design. This will be a joint effort with the back-end developer.

AC:

  • truncate appropriate responses
  • multipart form data for image upload
  • examples

Update schema to support storing refresh tokens

The use of refresh tokens to allow for a user to renew their authorisation and stay logged in requires the storage of these refresh tokens by the server, so that they may be revoked when necessary.

Create the selectable favours/rewards

The spec calls for a limited list of favours to be selectable (ie: favours are chosen from a predetermined list rather than free text by the user).

There's a minimum limit of 5 favours as per spec, but no upper limit. Favours must be "low value items with an element of 'fun'". Monetary values are not allowed.

Leave each suggestion as it's own comment below - that way we can use thumbs up reactions on the ones we like.

These will eventually be stored in the database - NOT hardcoded in the software. This is to allow for potential future enhancements such as allowing an administrator to modify this list. Let's try and finalise this initial list by end of week.

Also consider the phrasing of these items. It is assumed they will be displayed as something like this:

  • I owe John X
  • John owes you X
  • Complete this request to get X

Sign up and Login - client-side validation

AC:

  • empty required fields should prevent submission
  • display error messages based on API response

Notes:

  • Server-side validation (validating/verifying inputs) is scoped into separate API implementation issues

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.