Skip to content

StatusHistory

Ville Salmela edited this page Oct 22, 2023 · 2 revisions

Milestone 1 (10.9.2023)

Operational functionalities

  • Users can create new accounts using their email as username
    • Access to the email is verified with verification code
  • Users can save new functions to the library
    • Linting with pylint
    • Automated documentation using OpenAI API
    • Automated generation of unit tests using OpenAI API
    • Automated execution of unit tests using AWS Lambda
    • Automated keyword classification using OpenAI API
  • Users can browse functions saved by other people

Milestone 2 (24.9.2023)

New operational functionalities (since milestone 1)

  • Admins can:
    • list all users
    • disable and enable users
    • suspend and unsuspend users
    • revoke user's all sessions
    • promote users to admin
    • demote admins to user
    • delete users (along with all their data)
  • Users can delete their own functions from the library
  • Admins can delete any functions from the library
  • Added navigation bar
  • Added indicator that displays currently logged in user

New back-end features (since milestone 1)

  • Changed to using server-side session
    • Logout now permanently invalidates session
    • Server can invalidate sessions without client cooperation
    • Client can no longer read its session data, just a session ID
  • Increased security by controlling headers with Flask-Talisman
    • Content Security Policy (CSP)
    • HTTP Strict Transport Security (HSTS)
    • Refuse to send cookies over HTTP
    • Deny Javascript access to cookies
    • Disallow rendering page in a frame
    • Disable MIME type sniffing
    • Disallow sending cookie on cross-site requests (SameSite=Strict)
  • Configured and instructed usage of Development Containers extension for VSCode

New documentation (since milestone 1)

  • Started listing security considerations on README
  • Added description of database schema on README

Final Milestone (22.10.2023)

The application is ready for evaluation.

New operational funcionalities (since milestone 2)

  • User interface is styled with bootstrap
  • Two more static checkers
    • pyright for type checking
    • bandit for security checking
  • Rating
    • can rate functions created by others
    • average rating per function and per user
  • Searching
    • search functions by text match in source code, use case or keywords