GithubHelp home page GithubHelp logo

egeldenhuys / crypty-chops Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 26.81 MB

[Discontinued] A File Encryption Program

Home Page: https://github.com/egeldenhuys/Crypty-Chops/wiki

Visual Basic 100.00%

crypty-chops's People

Contributors

egeldenhuys avatar rgracey avatar zabogorie avatar

Watchers

 avatar  avatar  avatar  avatar

crypty-chops's Issues

Remove unused icons

The extra icons are consuming too much space and objects and need to be removed.

File association

Possible feature: When a file is encrypted using out program it is given a unique file extension. When the user tries to open this file it launches our program and displays the decryption dialogue. The user can then decrypt the file.

Advantages:
Faster to decrypt files.

Disadvantages:
This immediately lets anyone know the file is encrypted and may contain sensitive information. If the user used a weak password it can easily be decrypted by an attacker.

Possible solution:
Add the feature to the options and warn the user about the disadvantages when they enable it.

Should we include this feature?

Shortcut keys

Shortcut keys will make the program easier and faster to use.

Examples:
A - Add file
E - Encrypt selected file
D - Decrypt selected file
DEL - Remove the file from the list

Crypty File List

Functions are required to save the list of CryptyFiles to disk.
This file should be encrypted for security.

Requirements:

  • Save list
  • Load list
  • Encrypt List
  • Decrypt List

Updates

Because this program deals with security, the need for the latest updates is almost a necessary feature.

Features:

  • Check for updates
  • Download and apply update
  • Get change log
  • Version information

Main Screen Icons

Icons need to be added to the buttons as specified in the documentation.

Options

Required features:

  • Password for loading and saving the file list
  • Check for updates option
  • Toggle change log detail level
  • Default encryption options?

Interface designs

Show the detail of the program's interface. Includes as much detail as 
required to demonstrate what the interface will look like and how it will function. 

Screens

Cryptography

Features:

  • Ability to use a file as the key

Algorithms:

  • Crypty-Encrypt (Our own algorithm)
  • Reverse bytes
  • No password
  • AES

See #25 Prototype: Encryption_1

System Flowcharts

Shows the intricate details of either the system or a very complex 
part of the system. It shows how data is input, what occurs to that 
data step by step and finally where it ends up. This is a pictorial way
of showing how hardware, software, users and data work together in the system.

Status strip

Encrypting large files can take a fair amount of time. During this time we want to show the user the progress. Otherwise they may think the program is not functioning properly and this can lead to frustration.

  • Progress bar
  • Label to show current action

Data Dictionaries

Demonstrates the main data variables that will be used throughout
the application to store very important segments of data (i.e. doesn't 
include counters or temp variables). It would demonstrate the data types,
structures and examples values of data that must be kept consistent 
throughout the whole application.

IPO Tables

Input Output Process Chart/Diagram. Used to diagram the whole program, 
modules of the program or even small sections of the program. It shows what 
goes in, what happens to the input and finally what is produced as a result.

Compression

We require a class for compression and extraction of files. using the 7zip console version would be the easiest.

Functions:

  • Compress
  • Extract

Context Diagram

Shows the solution and the users involved (known as external entities). 
It demonstrates the inputs that the solution receives and the outputs that the solution provides.

File splitting

Features:

  • Split by size
  • Split into x amount of files
  • Join files

Encrypt multiple files at a time

The user needs to be able to select multiple files and encrypt them using the same key. The output can be a single file, or it can be split by size.

  • Encrypt multiple files at a time.

Tooltips

It would be helpful to the user if a tool tip is displayed when they hover the cursor over buttons and text boxes. This will make the application much more user friendly as functions are explained to the user as they encounter them.

  • Tool tip to explain functions

Design Specifications

Design specifications are created to outline the requirements of your full product (the solution). 
While there is no set format it should include information about set user requirements, 
software and hardware requirements and the system breakdown. 

The following needs to be completed for the design specifications.

User Considerations

  • Interface Design Considerations
  • Social and Ethical Considerations
  • Environmental Considerations

Developer Considerations

  • Modules
  • Data Structures
  • List of Algorithms

Team Feedback

I would appreciate it if you could give me feedback on my teamwork skills such as communication, organisation, ability to delegate, effort etc.

System tray icon

Feature to close the program to the system tray.

See issue #31 - System Tray Icon

Drag and drop support

Ability to drag files from the desktop onto Crypty Chops to add it to the file list would make the process easier and faster. No need to use the file browser dialogue to find the file when you can just drag and drop.

  • Drag and drop file to add it to the list

Data Structures

Demonstrates the main data variables that will be used throughout
the application to store very important segments of data (i.e. doesn't 
include counters or temp variables). It would demonstrate the data types,
structures and examples values of data that must be kept consistent 
throughout the whole application.

Dataflow Diagram

Demonstrates processes that happen inside the whole system and where 
data is stored. It shows the information flowing between the program's 
processes, what data the user's provide and what the system outputs to the user and 
finally where and how the data will be stored.

Program Updates

Interface Features:

  • Menu strip entry "Updates"
    • Check for updates
    • Changelog
    • Options
      • Toggle auto update
      • More detailed changelog (Developer)

Storyboards

Similar to what's used in the movies, shows very little detail of the 
program's interface but it shows how each of the screens are 
joined and how the user will access each one.

Screens

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.