srivaidyas / student2.0

AP CSP Blog
https://srivaidyas.github.io/student2.0/AD_compsci.html
Apache License 2.0
0 stars 0 forks source link

Final Project CSP #57

Open srivaidyas opened 4 months ago

srivaidyas commented 4 months ago

Encrypter and Decrypter

In our final project, we plan to create a symmetric encrypted and decrypted algorithm that encrypts and decrypts code in a specific key. We plan to either generate a key or use the ASCII key to encrypt and decrypt text. Our UI functions as follows- the user inputs text and clicks a button that sends said text to the backend API. Once the text is sent, the backend has code that will encrypt the data and store it in the database. The encrypted data is then sent to the frontend UI wherein the code decrypts the text. Since a backend network is involved we most likely plan to create a symmetric algorithm wherein the presence of a public and private key creates a more secure system. We also plan to provide the user with a secret message each time they send data to be encrypted to help with the sorting and searching algorithms. The secret key would assign each word of the data with a specific number according to their initial arrangement and when the words are mixed it would be easy to decrypt the messaging on the front end.

image

Feature Flowchart

  1. User input from the front which includes raw data
  2. Raw data is posted to the backend database wherein it is encrypted using the symmetric ASCII key
  3. Raw data and encrypted data are stored in a backend database along with an ID/Keyname
  4. Data is sorted according to the ID
  5. Back to the frontend
  6. The user requests data from the backend/ the encrypted data using the ID/Keyname
  7. Algorithm searches across the database to identify the ID number and sends the data to the frontend.
  8. Encrypted data is displayed and using a decryptor the data is decrypted into the original raw.

Features and Requirements Breakdown

1. Loops (Algorithmic) Show a specific example of building a List using List Comprehension. Show examples of processing a list using conventional and for each method. The list we plan to use is the ASCII key list or our key which contains values that are both in the English alphabet and its corresponding numbers and letters. This list shall be part of the backend and frontend code wherein the system encrypts the text. Given that the program uses a backend we also plan to store said data both as the input data from the user and the encrypted data from the algorithm.

2. Sorting / Searching (Algorithmic) Show examples of sorting and searching using the backend of your project. FYI, SQLAlchemy allows filtered selections and sorting. Additionally, you have sorting options discussed in the tech talk. The backend of the algorithm shall search through the data given by the user to look for the letters and encrypt them with the values of the key. regarding sorting we plan to send the encrypted data as a mixed bag of words and numbers to the frontend system that then sorts the data once decrypts it providing another layer of security for the program system.

3. Big(O) Illustrate the Space and Time complexity used in your Sorting / Searching algorithm. The algorithm sorts words according to alphabetical order and thus the time taken would be decided by that issue.

4. 2D Iteration Show examples of code that uses 2D iteration. This can be anywhere in your code where you are using rows and columns. The roles and columns that would most likely be used in our code are from the key relating it to the alphabet present both in the fronted and the backend in order to both encrypt and decrypt the data sent from the user and back from the API.

5. Deployment (Full Stack) A complete deployment illustration of multiple people using and updating your Full Stack Web Application simultaneously. Use AWS deployment. Ensure the application supports multiple users by implementing user authentication and session management.

Tasks: Sri: Create frontend and backend code that determines how he data is encrypted and decrypted Ryan: Creat the sorting algorithm which creates the mixed bag of the encrypted data and re sorts it back in the frontend algorithm.

rliao569 commented 4 months ago

Sprint Schedule

Week 1:

Week 2: