Giter Site home page Giter Site logo

softeng701-group5 / assignment1 Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 39.0 8.99 MB

Mello is a web-based application designed to revolutionize the way users organize and break tasks down into sizeable time chunks. This project is associated with The University of Auckland SOFTENG 701.

Home Page: https://softeng701-group5.github.io/assignment1/

License: Apache License 2.0

HTML 1.00% JavaScript 88.34% SCSS 10.65%

assignment1's Introduction

SOFTENG701 Group5 - Assignment1

Mello Logo

Mello is a web-based application designed to revolutionize the way users organize and break tasks down into sizeable time chunks.

This project is associated with The University of Auckland SOFTENG 701.

CI Status
Tests Tests
End to End Tests End-to-End Tests
ESLint and Prettier ESLint and Prettier
Build and Deploy Build and Deploy

Setting up

  1. Go to the shared repository, and click the 'Fork' button in the top right corner
  2. Click on your username to create your own copy of the shared repository. This is where you will collate your work
  3. Open a command prompt window on your computer, and navigate to the directory you want to store the project
  4. In your forked repository, click the green 'Code' button, and copy the github url in it
  5. In your command prompt, execute git clone [copied-url]. This should download your forked repository
  6. Run the command cd assignment1 to go into the assignment folder
  7. Run the command git remote add origin [copied-url] to make sure your project is linked to your forked repository
  8. Go to the shared repository, click the green 'Code' button, and copy the link
  9. In your command prompt, run git remote add upstream [new-copied-url] to link your project to the shared repository
  10. Run npm install to make sure your project is up to date

assignment1's People

Contributors

danieldowling999 avatar dongmeilim avatar franc-hoon avatar gsin387 avatar ham-n-jam avatar hwar042 avatar ingemarwatt avatar ireb15 avatar jzen349 avatar kennyt12237 avatar lucas2005gao avatar max-gurr avatar saaaaraaaah avatar tessagush avatar thakurtushar02 avatar yungikim1999 avatar yuno99825 avatar

Stargazers

 avatar

Watchers

 avatar

assignment1's Issues

Task Board Drag and Drop

Add the ability to drag tasks between the 3 vertical columns in the Trello board screen. The ability to drag/reorder tasks within one column can also be added but depending on how much time we have this can be left. This functionality should also be linked to firebease so that the changes are persisted.

Trello initial styling

Initial setup of the Trello screen. Basically just getting the screen to show, ideally with the background. If/when the sidebar is complete, it should also be visible.

Wiki Pages Documentations

Setting up and maintaining a Wiki documentation of this Github Repository.

  • Set up Wiki Page's sidebar and footer
  • Set up and add contents to relevant Wiki pages

Task Board columns

Add 3 vertical columns to the screen. The columns are to contain tasks. The leftmost task should have a dummy '+' button that will have its functionality linked up later on. The 'Today's Tasks' screen has a similar list that Yuno mentioned could be heavily reused. in our screen

Background circles restrict content on smaller viewport

Current behaviour:
On smaller viewport sizes, the background circles cause overflow, pushing the main content in and shrinking it.

Expected behaviour:
The background circles can overflow their parent element without affecting other content. This could involve the circles scaling with viewport size.

Fix firebase Sign-up method

Change the sign-up method by allowing firebase to associate a first and last name to the user's account upon sign-up.

Login routing

  • Default to login
  • After login, direct to home page
    Depends on #13

Adding ESLint into the project

ESLint statically analyzes your code to quickly find problems. ESLint is built into most text editors and you can run ESLint as part of your continuous integration pipeline.

  • Configure ESLint
  • Configure integration of Jest and Prettier
  • Fix all current linting issues

Navbar removed from login

currently the Navbar is visible on all screens, including the login screen. This needs to be removed, so it is only visible after the user signs in

Button component changes

The current button component throws errors whenever any of the props aren't specified.
Not all the buttons will be a direct link, and they won't all have icons, so this shouldn't cause errors.

I think there should also be an onClick prop for specifying custom click events

Home screen page

Create initial home page in React based on the prototype design.

Firebase Authentication

Using Firebase:

  • Create Firebase project
  • Allow user authentication with Firebase project
    • Create user login/sign-out functionality
    • Create user Sign-up functionality
    • Create “service” file for easy access to Firebase authentication functionality

Current TimerModal shortcuts used

TimerModal is an extension of the dashboard (under the current task component). Made our life easier by using shortcuts to create this component. These need to be refactored when the dashboard is complete:

  • Move the TimerContextProvider global state to the appropriate component (currently in index.js)
  • Move the TimeModal route to the appropriate component (currently in app.js)

End-to-End Testing

As part of our CI/CD, we need to include some form of end-to-end testing. This will be done using Cypress and integrated into our git actions.

A limitation that might pop up is needing to access the firebase database to log-in, which may cause issues due to the limited amount of accesses our database can have. Will also look into ways to get around this limitation.

Task Board Task Sorting

Change the order that the tasks are sorted within their vertical column. Examples of the way that tasks can be sorted include due date and class priority.

Main content size

Current behaviour:
The main content div doesn't span the width of the page, and instead fits to the width of the content

Expected behaviour:
Main content div spans all available space between the right-side of the page and the navbar

Firebase CRUD

  • Create CRUD functions to communicate with Firebase
    • create task
    • get tasks
    • update task
    • delete task

Firebase Documentation

Create documentation for:

  • The methods provided for Firebase Authentication
  • Firebase Cloud Firestore Database CRUD methods

Create current task component

Create the central component to display the current task, notes, timer and timer config to be placed on the dashboard.

Workflow doc

Create a doc (wiki, readme, etc) to detail the workflow for the project. Should include:

  • Forking the main repo
  • Setting up local repo with remote & upstream
  • Creating new branches
    • Feature branch
    • Issue branch (for a smaller part of a feature)
  • Making PRs
  • Getting reviews

Side navbar

add a side navbar to navigate between different pages.
Also the option for the user to log out.

Change the resize button in TimerModal

There is no way to access the timer-modal from the dashboard. When the dashboard has completed, change the onClick handler on the maximise button to bring up the timer-modal.

Create signup box component

  • First name entry
  • Last name entry
  • Email entry
  • Password entry
  • Confirm password
  • Submit entries
  • Cancel sign up

Check login/signup inputs for validity, give user feedback if not

The inputs given to the login and signup textfields should be checked. We need to make sure that all the inputs have been provided. If an input isn't provided, we should notify the user that it was missing.
Inputs should also be processed to some degree. At a minimum, we should remove leading/trailing whitespace

Depends on #10 & #11

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.