Code Monkey home page Code Monkey logo

desdeo-webapi's People

Contributors

gialmisi avatar light-weaver avatar rmojala avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

desdeo-webapi's Issues

User account management features

Right now, many basic user account management features are missing. These include:

  • Password recovery
  • Changing password
  • Deleting one's account
  • Email

An email server interface for the backend must be setup for password recovery to work. Right now, emails are not stored for users, so an email field must be specified for the user model as well.

Initial solution for NIMBUS

The main branch of the webapi does not consider a parameter for providing an initial solution although it is allowed in the method implementation.

Methods in an intermediate state should be saved for each user

Right now, when a user starts a new interactive method, the old instance of the method is always replaced with the new one. This makes it impossible for a user to start one method, then utilize another method in the meantime, and then return to the first method and continue from where it left.

It can also be beneficial to store the method at each iteration for the user. If pickling works for this, then use pickles. If not, then something else should be devised.

Enhance Login Error Handling and Response Data

Issue Description:

Our current system does not sufficiently differentiate between various login error types. It uses the same HTTP status code for different types of login failures, making it harder for the client to handle different cases properly. Additionally, the successful login response could be improved to better facilitate client-side usage.

Tasks:

  1. Login Error Handling: Implement unique numeric error codes for different types of login failures. This will help the client differentiate between situations such as incorrect username or password.

  2. Security vs User Experience: Review the current approach of revealing to the client whether a login failure was due to a non-existent user account or an incorrect password. Evaluate the balance between user-friendliness and security to decide if this practice should be maintained.

  3. Login Response: Add a "username" field to the successful login/registration response. The username is currently returned as part of the message, which could lead to issues as the client shouldn't parse important data from a potentially changeable message content.

Improve Username and Password Validation and Error Handling

Issue Description:

The current backend does not validate usernames during registration, allowing even empty strings or strings consisting only of whitespaces to be registered. This leads to unclear and potentially problematic user experiences.

Tasks:

  1. Username and password validation: Update the backend to reject usernames and passwords that consist only of whitespace during registration. Usernames and passwords should be properly validated to maintain data integrity and improve user experience.

  2. Error handling: When a username is rejected during validation, the server should return a response with a unique numeric error code and a descriptive error message. This will help the client to understand the specific issue and respond accordingly.

  3. Existing username detection: If a registration attempt is made with a username that already exists, the server should return a response with a unique numeric error code. Currently, it's not clear to the client if the username is already taken.

  4. HTTP Status Codes vs Numeric Error Codes: Consider the use of HTTP status codes for different types of errors instead of or alongside unique numeric error codes. This needs some discussion to determine which method is more common or suitable for our case.

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.