Code Monkey home page Code Monkey logo

soarview's Introduction

Guilherme Pace

Driven software engineer with a background in finance. Curious problem solver and passionate for tackling challenges that combine analytical and strategic thinking. I enjoy the process of developing applications and collaborating with others to develop effective software solutions. I also have a life-long passion for aviation and the sport of soaring in particular.

Portfolio Linkedin AngelList Email

🌎 Falo Português fluentemente

Technologies

  • Languages: JavaScript Python
  • Frontend: React Redux Nodejs HTML CSS Tailwind
  • Backend: Express.js Flask PostgreSQL SQL AWS REST API
  • Tools: Git GitHub Heroku Docker VS Code Markdown

Guilherme's GitHub stats

soarview's People

Contributors

guipace avatar idbentley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

soarview's Issues

Flight viewer

As a visitor to SoarView I want to be able to view and analyze flight tracks uploaded by anyone.

Questions

  • Will not logged in users be able to view flights?
    • No, only logged in users will be able to view flights.
  • Where will the user be redirected after deleting a flight?
    • To the homepage.
  • How will a user edit a flight?
    • There will be a conditionally rendered 'Edit' button for the user that uploaded the flight.
    • This will open a form modal pre-populated with existing information.
    • After confirmation of changes user will remain on the flight page and the information will be updated.

Login - 1

On the login modal there isn't any space between the password's label and its input field, so please be sure to add some.

Login - 2

Because there are two button on the login modal, I'd make the "Demo Account" button look like a secondary button by making the border red, the fill white and the text red, because right now the two buttons look like they are the same level of importance.

File Input Styling - 2

It looks like file input button is styled a little bit, but please be sure that its styling uses the same color scheme for the other buttons. Also the choose file button is a little bit to the left compared to all of the other inputs so please be sure they all line up on the left side.

Edit Comments

I can't update comments, so please be sure to implement that in order to complete this feature. While I'm not able to submit a blank comment, it's being done using a a 'required' attribute, so please be sure to actually render your own error messages.

Login - 3

I'd consider making the login modal as wide as the sign up modal because it's laid out well.

Form Validation

There isn't any form validation so I tried removing the lastname from the demo user but the page broke so I had to refresh. Please be sure to add some form validation.

Demo user

As a first time user who wants to demo SoarView, I would like to peruse the site with a demo user login via a single button click on the login and signup form, so that I can access the application without creating a new account.

Demo User Questions

  • Will the user use an email address or username to login?
  • What will the demo user have access to?
    • The demo user will have access to all features available to a registered user.

Login/Signup

There isn't any hover effect on the links at the bottom of the log in and sign up modals so please be sure to add one.

Log out

As a user, I want to be able to log out of my account at my leisure. When I click the "Logout" button/link on the navigation bar, I want to be able to hide my account information from the rest of the users on this device.

Questions

  • Will the user have access to the logout button on each page or just on their profile or homepage?
    • Possibly a dropdown on profile/dashboard and homepage
  • What routes should we use for logout?
    • /logout
  • Where should the user be redirected after logging out?
    • User should be redirected to the root

Acceptance Criteria

  • Given that I'm a user who is currently logged in
    • When I'm on the / homepage route
    • Then there will be a Logout button/link on the navigation bar that I can click at my leisure, so I will be able to hide my account information.
  • Given that I am a user that is logged in and
    • when I click the Logout button/link
    • Then, I will be redirected to the / homepage and my account information will be hidden

Landing Page

Implement a log in page that describes what the app does.

Flight management

As a logged-in user, I want to upload a flight, so that I and others can review the flight.

Questions

  • How will a user upload a flight?
    • In the navigation bar when a user is logged in, they will be able to click on a 'Upload Flight' button.
  • Are certain fields unnecessary to complete?
    • Yes, pilots notes are not required.
  • What information is shown on the flight page?
    • Date, duration, distance, location, glider model, launch type, pilot notes, and a map with the flight path rendered.
  • Will the uploader have exclusive rights to make changes to a flight?
    • Yes, the uploader will be the only one able to make changes to the flight (edit details, delete the flight).
  • Are all flight public and visible to anyone?
    • All flights are visible to logged in users.
  • What routes should we use for flight pages?
    • The following format: 'flight/:id'

Profile Edit

The user can edit the email, but I'm not sure they should be able to because I think that could potentially break the demo login.

Comments

As a logged-in user, I want to make comments on flights, so I can share my opinion with others.

Questions

  • Can any logged in user comment on any flight?
    • Yes.
  • Can a user edit their comment?
    • A user will have the ability to delete a comment, but not to edit it.
  • How are comments displayed on the page?
    • Comments will be displayed under the flight details in chronological order.

Flight Edit

When I click the edit button, the modal the pops up also has an edit button, but you're already editing the form. Instead please rename the edit button the edit modal to update, because that's the action you're doing once the form submits.

Sign up

As an unauthorized user, I want to be able to sign up for the website via a signup form modal

Questions

  • What information are we collecting from the user?
    • First Name, Last Name, Email Address, Country, Photo, Password
  • Will we confirm their password during signup?
    • Yes, there will be a second password field to confirm they typed it as intended
  • Where should the user be redirected after signup?
    • User will be logged in and remain on the landing page, but it will now conditionally render a navbar and other content for a logged in user.
  • What makes each user unique?
    • Email should be what makes user unique.
    • Show the message, "Sorry, that email address already exists."
  • Do we need a confirmation email?
    • No, as email correspondence is out of scope.
  • What routes are used for signup?
    • There is no dedicated frontend route; the user will sign up on the landing page via a modal.

Acceptance Criteria

  • Given that I'm a user who has not yet signed up and
    • When I'm on the landing page
    • Then there will be a sign up link/button that displays a modal form with several fields and a "Sign Up" button to submit the form
  • Given that I'm a user who has not yet signed up and
    • When I try to fill out the form with an email that already exists and press Enter or the "Sign Up" button
    • Then, at the top of the form, I will see a red message "Sorry, that email address is already in use."
  • Given that I'm a user who has not yet signed up and
    • When I try to fill out the form with a password shorter than 6 characters
    • Then, at the top of the form, I will see a red message "Sorry, password must be at least 6 characters long."
  • Given that I'm a user who has not yet signed up and
    • When I try to fill out the form with valid inputs and press Enter or the "Sign Up" button
    • Then, I will be registered, logged in and the landing page will conditionally render the navbar and other relevant content.
  • Given that I am a user that just signed up, when I refresh the homepage at / route
    • Then, I will still be logged in

Test File

I like how you can load a test IGC file, because I don't have one on hand. I was able to do all of the CRUD operations once. However, after I deleted it I expected that I could do them all again with the same test file. That said, when I tried uploading the flight with the test file again, there was an error in the console.

User Page

Because I deleted the flight I created and couldn't recreate it, there isn't anything that renders under the Logbook header. Please be sure that if the user doesn't have any flights that it says the user doesn't have any flights.

File Input Styling - 1

It looks like file input button is styled a little bit, but please be sure that its styling uses the same color scheme for the other buttons.

Log in

As an unauthorized user, I want to be able to login to the website via a form, so that I can access the application.

Questions

  • How long should the user session last?
    • 1 week
  • Will the user enter a username or an email address to login?
    • User will login via email and password.
  • What routes are used for login?
    • There is no dedicated frontend route; the user will login on the landing page via a modal.
  • Where should the user be redirected after login?
    • User will be remain on the landing page, but it will now conditionally render a navbar and other content for a logged in user.
  • What happens if the user doesn't exist yet?
    • Show the message above the login form "Please provide valid log in credentials."
  • What happens if the user enters the wrong password?
    • Show the message above the login form "Please provide valid log in credentials."

Acceptance Criteria

  • Given that I'm a logged-out user and
    • When I'm on the landing page
    • Then there will be a login button that will display a modal with a form with an email and password field and a "Log in" button to submit the form.
  • Given that I'm a logged-out user and
    • When I try to fill out the form with an invalid email and password combination and press Enter or press the "Log in" button
    • Then at the top of the form, I will see a red message "Please provide valid log in credentials."
  • Given that I'm a logged-out user and
    • When I try to fill out the form with an email that doesn't exist in the system and press Enter or press the "Log in" button
    • Then at the top of the form, I will see a red message "Please provide valid log in credentials."
  • Given that I'm a logged-out user and
    • When I try to fill out the form with a valid email and password and press Enter or press the "Log in" button
    • Then I will be authenticated and the app will conditionally render while staying on the same frontend route.
  • Given that I am a logged-in user and
    • When I refresh the homepage at the / route
    • Then I will still be logged in
  • Given that I am a logged in user and
    • When I am on the homepage
    • Then there will be the most recently uploaded flights by all users rendered.

Map Sizing Bug

I'm looking at your app on a 13 inch macbook air and there's a gray bar a the bottom of the map because the map doesn't fill all the way to the bottom if there are a bunch of comments or some long ones. Please be sure that the either the map fills all the way to the bottom without distorting the map or you apply a background to make the space around the map look intentional. Alternatively you could make the comments scrollable on 13 inch laptop screens if they exceed a certain height.

Logbook

As a logged-in user, I want to have a profile page, so I and other can view all my flights and information related to my account.

Questions

  • What information is shown on the user profile?
    • First name, last name, image, location, and all of the users flight with some aggregated statistics.
  • Are user profiles public and visible to anyone?
    • User profiles are visible to logged-in users only.
  • What is the interactivity of user profiles?
    • A user can make changes to his/her profile by clicking an edit button. Fields that can be changed include names, image, and location. The rendered flights have links that take the user to those pages.
  • What routes should we use for user profiles?
    • The following format: 'user/:id'

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.