Git Product home page Git Product logo

alertadotesouro's Introduction

French level English level French level

Metrics

alertadotesouro's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

xriku

alertadotesouro's Issues

Rewrite solution for creating `TreasuryBond` objects such that it does not rely on an endpoint handling POST requests.

I honestly don't know why the hell I did this but I think this was used as a workaround to create a new TreasuryBond if it has never been seen before, e.g.: if a new bond is created by the federal government and is now listed on the API response, it should be added to our SQL database. Could have been for any other reason though...
The current solution obviously has the problem of an extern agent being able to freely create TreasuryBond objects.

Create User data export

Users should be able to export all their data, to be received via e-mail. A .json file with everything (e-mail, notifications, notification preferences) serialized should suffice.
There should be a button under the /conta front-end route that starts the request for data export.
Loosely related to #36.

Briefly disable buttons after they're pressed

This should provide nice feedback for users and also prevent spam from regular users. This is more relevant to buttons that do network-related actions (requests to the backend, etc; not essential for the logout button, for example)

Clean up redundancy in style files

Currently, the styling of components is highly redundant. This would be easily solved by moving a lot of definitions to the global style located at web/src/styles/global.ts.

Send browser notifications when bond returns criteria is match and user wants them

To be honest, I think browser notifications are somewhat unreliable. Nevertheless, it would be cool to have this feature in our project, especially as it was a planned feature from the beginning.
I'll leave it as an extra. We can easily justify the removal of it from our scope at a later point. However, I don't believe it to be any hard to implement.

Check if back-end is still fully functional

That's right. NO AUTOMATED TESTING IS ALLOWED IN THE VICINITY OF THIS REPOSITORY.

User creation might not be working properly, emailing can be reverted back to mailtrap. I bet notifications are borked too.

Improve navbar

Currently, our navbar doesn't change, ever. Here are some things we can do to improve it:

  1. "Conta" link should not appear when the user is not logged in;
  2. "Logar" button should not appear when the user is logged in;
  3. Underline the current page (when applicable);

Image showcasing of both of the last two requirements:
2022-06-03_16-30

Document existing endpoints

Existing endpoints lack documentation. Proper documentation should be included in the README, and if possible, TSDoc, to help with the development workflow.

Implement functionality for `/dashboard` front-end route

Market status info can be retrieved from the API: ["response"]["TrsrBondMkt"] yields:

  1. opngDtTm: opening datetime
  2. clsgDtTm: closing datetime
  3. qtnDtTm: ? (for the love of God stop aggressively abbreviating things!!). anyways, this should be of no use to us
  4. sts: market status ("Aberto" or "Fechado")

We can format those as:
'Mercado aberto/Mercado fechado: [current time in HHhMM]'
'Horário de funcionamento: de HHhMM às HHhMM.'

Back when I draw this view, I was thinking about having the 'Atualizado às XX/XX/XXXX, XX:XX.' with a refresh button to its left, allowing the user to refresh the data without reloading the whole page. This might be a bit unnecessary since treasury bonds rates don't fluctuate too heavily within a day.
This simplified version cleans up some information and space, concentrating information tightly (without going overboard as well).

The cards are missing all of their functionality as well. This is where the users can subscribe to/create notifications.

Extra: The grey circled 'i' would flip the card and exhibit information about the bond, but that would be even harder. However, it is a reasonable solution since the text is rather long. I'm still not sure what to make of it. To start off, we might leave it as a simple tooltip text.

Extra: it would still be nice if the dashboard automatically updated the rates every 15 minutes. muh SPA

New feature: Resend confirmation email

Consider the following situation:

  1. User creates an account
  2. Server sends email promtping user to confirm email address
  3. Email is sent to user, but is {not delivered, rejected, bounced, fell into a deletion rule, etc}

Then:

  • User can't login because account is not confirmed
  • User can't create a new account on the same email address

Integrate CodeCov (CI)

Could be any other code coverage solution, but I've used CodeCov and can recommend it.
Depends on #27. Both will probably be demanded by JP.

Create ToS and Privacy Statement

Since this web app heavily relies on creating an account to enable usage, it is reasonable to provide a Terms of Service and a Privacy Statement for all potential users to read.

Use docker compose to run locally

Instead of only running backend in containers, a docker-compose should be more accessible and easier to the end-user, since they will need docker to run the backend anyway. That should even help when developing frontend.

What needs to be done in order to achieve it:

  • Create a dockerfile that builds the project and then runs it.
  • Create a docker-compose file that runs both the backend and then the frontend, all in the same network. In the future, the backend application can be in more than one network, to be in a separate network with only backend app and frontend.

With this, you should be able to run all applications (in the proper order) with docker-compose up, creating a docker container for each service instead of doing that with separate commands and the application in the shell session.

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.