Code Monkey home page Code Monkey logo

printlink3d's People

Contributors

danielvette avatar dh3773 avatar j-raymer avatar jasper-nelligan avatar jvsluis avatar mas393 avatar

Stargazers

 avatar

Watchers

 avatar

printlink3d's Issues

Figma Diagrams

The plan for the UI design is for each of us to individually create a UI mockup based on how we imagine the website looking, so that the final design can take the best parts of each individual's design. It would be great if each group member could create a set of Figma UI mockups (very simple ones) for Friday so that Jasper can get working on the cumulative design.

Jasper will be creating a Figma page for the project soon. Make sure that when you do your designs you just create new cells and not new pages, as you need to pay to get more than ~3 pages whereas you can have infinite cells.

Feature List

This table presents the main features we are trying to accomplish. See an issue ticket for a more detailed description of a particular feature, its requirements, and up-to-date status. On completion of the features, the time actual column will be updated.

Feature Issue Ticket Due
Customers can upload print jobs #6 Milestone 1
Printers can select from available print jobs #14 Milestone 1
Customers and printers can communicate about a shared job #15 Milestone 1
Account creation and login #53 Milestone 2
Printers can track jobs through profile No issue ticket yet Milestone 2
Customers can track jobs through profile No issue ticket yet Milestone 2

Google maps api error (live site)

check out error:

Oops! Something went wrong.
This page didn't load Google Maps correctly. See the JavaScript console for technical details.
Error: AuthFailure
A problem with your API key prevents the map from rendering correctly. Please make sure the value of the APIProvider.apiKey prop is correct. Check the error-message in the console for further details.

Printers can select from available print jobs

Description

With this feature, printers who are looking to take on a printing job will be able to browse available prints uploaded by customers, filter the jobs based on distance and material, and select a job to complete.

Requirements

Interactable banner

Make the top banner have a color gradient according to our brand's color identity.

Make the logo an interactable button that brings you back to the home page.

Create order details page

This is the page where it shows all job details, status, as well as a chat box for connecting with the customer/printer

Decide on Fonts and Colour Theming

Decide as a team what kind of fonts and colour palette we'd like to use. We can use tailwind to easily integrate these choices into the app.

Low priority - can be changed whenever.

Profile pages

We need to design and implement a profile page for users. The profile page will be built with a Profile component and we can have different views depending on 3 use cases: My Profile (viewing your own profile, Printer Profile (viewing another users profile when looking at a print job), Customer Profile (when looking at a profile through a print job from the perspective of a printer looking at a print job)

My Profile
viewing your own profile, should include ratings, jobs, messages, and settings

  • Name
  • Username (unique)
  • Profile photo
  • Rating
  • Messages
  • Settings
  • Customer Tab/Section
  • List of jobs (New Job card with status, link to printer profile, message option?, ect)
  • Printer Tab/Section
  • List of jobs

Printer Profile

  • Username (unique)
  • Profile Photo (help with trust for local pickup, maybe we can make a profile photo mandatory for local pickup or make it an option when creating a job)
  • Printer Rating (5 star system, show number of ratings)
  • Printer Reviews (title, description, option for photo)
  • Message option

Customer Profile

  • Username (unique)
  • Rating (Do we want to include a customer rating? This would improve trust on the printer side and prevent abusive customers)
  • Message option

Create individual pages using react router

We need a page for each step of the printing/selecting job process.

For the customer, we'll have Home Page -> Upload File Page -> Configure page

For the printer, it'll be Home Page -> Select Job page -> confirm job page

There should be a button going from each page to the next according to the above sequence.

Bidding System

  • Show current bid on every job card
  • After clicking on a job card, bid UI is shown on the right side of the confirmation page
  • For the jobs page, have a section for jobs that you currently have bid on. Also do this for the orders page
  • We should provide a job bid estimate based off material and volume
  • Customer waits for a bid until they are comfortable accepting

Mockups in process

Create side bar

Create the side navigation bar according to the mockups

We could possibly have an animation for when the page switches, as in the highlighted bar moves one down when clicking next

Create Button Component

Create reusable react button component. Should serve as a template for others to build out their own reusable components.

Add colors to database

The print color options should be stored in the database and be retrieved from there for use in our application

Back end for login + Profile pages

We need to update firebase for the following:

  • Authentication - Firebase (google ?)

  • User profile

  • Add unique identifier (username)

  • Name

  • Profile Photo

  • Location (coordinates)

  • Ratings (would be a separate table if using RDBMS)

  • Messages

  • Settings

Customers can upload print jobs

Description

With this feature, customers who want something printed will be able to upload an STL file through the app and configure job parameters including:

  • printer distance
  • infill percentage
  • material type

Requirements

  • Figma mockups for pages
  • #8
  • #7
  • #25
  • #26
  • Print job confirmation page
  • Sending print job details (file & configuration) to DB

Project Setup

This issue is for tracking generic project setup tasks. Many of the documentation tasks are outlined in this doc

Todo

  • #9
  • Create a list of features, posted to an issue, according to specification in milestone 1 description
  • Create github issue tickets for each feature and link to anticipated completion milestone
  • Transfer plaintext knowledge to the github wiki (e.g. contribution doc & Milestone 1 docs folder)
  • #18
  • #19

Create user details page

After a printer has selected a job and confirmed it, the printer should see a page with the customers name and email

Account creation and login

Users should be able to create an account and login.

Additionally, users should be required to login before posting a job. Printers will need to be logged in to view jobs

Create Multi-Staged Forms

Use conditional rendering to implement the multi staged forms mentioned in #8 .
Add the basic form fields and features required for each stage. Don't worry about actual functionality for this task, just get the react state setup.

Rating System

  • Create rating modal for after completion of job
  • Add ratings to bid cards in job page
  • Add Reviews to profile page
  • Add Reviews page to configuration page

Additional Auth features

  • forgot password
  • change password
  • error handling
  • delete account
  • add display name to email login

Add ThreeJS To Render STL Files

  • Setup Three JS
  • Add rendered container of the uploaded STL in printee request form.

Implementation notes:

  • Listen for change on input[type=file] and use data bound to evt.target.files[0] to pass data to renderer.
  • Check out this threejs stl example:

Create new browse jobs process

The browse jobs process has slightly changed. There are now filters where the steps once were and the confirmation page has more information (see mockups).

Once the printer has confirmed a job, it should route to the order details page where the printer and customer can chat (separate ticket)

Fix firebase node modules appearing in parent folder

On my device, a node_modules folder would appear in the parent git folder, adding all the firebase files to the commit. As a temporary solution I added a new .gitignore files, however we should investigate why only the firebase modules are being added outside the "app" folder

Selecting multiple stl files crashes website

If you select multiple STL files during the file upload phase, the website will crash with an error.

Since we currently only accept one file, we should only accept the first file that is uploaded.

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.