-- Starting off:
INSERT INTO project (title, difficulty, span) VALUES ('Hello world', 1, 1);
INSERT INTO project (title, difficulty, span) VALUES ('Fizz Buzz', 1, 1);
INSERT INTO project (title, difficulty, span) VALUES ('Data Structures (Stack, List, Heap, Binary Tree, etc)', 2, 7);

-- AI:
INSERT INTO project (title, difficulty, span) VALUES ('Neural Network', 2, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Tensorflow Clone', 3, 30);

-- Algorithms:
INSERT INTO project (title, difficulty, span) VALUES ('Custom Allocator', 2, 1);
INSERT INTO project (title, difficulty, span) VALUES ('Custom Compression Library', 2, 1);
INSERT INTO project (title, difficulty, span) VALUES ('ROT 13, ROT 47, ROT with any series', 1, 1);
INSERT INTO project (title, difficulty, span) VALUES ('Vectorized SIMD Matrix Multiplier', 3, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Printf Suite Implementation', 2, 7);
INSERT INTO project (title, difficulty, span) VALUES ('String Manipulation Library', 1, 1);
INSERT INTO project (title, difficulty, span) VALUES ('Pathfinding: Dijkstra''s Algorithm', 2, 1);
INSERT INTO project (title, difficulty, span) VALUES ('Pathfinding: A* Search Algorithm', 2, 1);

-- Applied Math and Problems:
INSERT INTO project (title, difficulty, span) VALUES ('General Lambert''s-Problem Solver', 0, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Solution to the 8 Queens Problem', 3, 7);

-- Calculators:
INSERT INTO project (title, difficulty, span) VALUES ('Graphing Calculator', 3, 30);
INSERT INTO project (title, difficulty, span) VALUES ('Normal Calculator', 1, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Reverse Polish Notation Calculator (Look into dc(1))', 1, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Spreadsheet (CSV Read/write) (With Excel features)', 2, 7);

-- Compiler (Or Interpreter) Theory:
INSERT INTO project (title, difficulty, span) VALUES ('C Compiler', 3, 30);
INSERT INTO project (title, difficulty, span) VALUES ('Holy C Compiler', 3, 21);
INSERT INTO project (title, difficulty, span) VALUES ('Scheme/Lisp Compiler', 3, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Language Virtual Machine', 4, 365);
INSERT INTO project (title, difficulty, span) VALUES ('Custom LLVM Language', 1, 7);
INSERT INTO project (title, difficulty, span) VALUES ('YACC Implementation', 2, 30);

-- Networking:
INSERT INTO project (title, difficulty, span, body) VALUES ('E2EE PSK Messenger (either GUI or CLI, preferably detached from servers)', 5, 7, 'E2EE PSK Messenger (either GUI or CLI, preferably detached from servers)');
INSERT INTO project (title, difficulty, span) VALUES ('HTTP Web Server', 5, 7);
INSERT INTO project (title, difficulty, span) VALUES ('IRC Client', 2, 30);
INSERT INTO project (title, difficulty, span) VALUES ('Matrix Client', 2, 30);
INSERT INTO project (title, difficulty, span) VALUES ('BitTorrent Client', 2, 30);

-- OS:
INSERT INTO project (title, difficulty, span, body) VALUES ('Your own Operating system', 4, 30, 'wiki.osdev.org');

-- Rendering:
-- INSERT INTO project (title, difficulty, span) VALUES ('3D CAD Software', 4, 7);
INSERT INTO project (title, difficulty, span) VALUES ('2D Vertex Editor', 3, 30);
INSERT INTO project (title, difficulty, span) VALUES ('3D Vertex Editor', 3, 30);
INSERT INTO project (title, difficulty, span) VALUES ('Bitmap Raytracer', 3, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Media Player (Think MPV & VLC)', 3, 30);
INSERT INTO project (title, difficulty, span) VALUES ('Music Player Daemon Implementation', 2, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Image to ASCII (BONUS: Use Unicode or Color)', 2, 7);

-- Simulation:
-- INSERT INTO project (title, difficulty, span) VALUES ('Hydrodynamics', 2, 7);
-- INSERT INTO project (title, difficulty, span) VALUES ('Aerodynamics', 2, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Rigid Body Physics', 2, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Voronoi Diagram (HARDMODE: hardware rendering)', 1, 7);

-- Tools (Usable and Applied Algorithms):
INSERT INTO project (title, difficulty, span) VALUES ('Terminal Emulator', 3, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Text Editor (Autosave with dates, Configurable binds)', 3, 7);
INSERT INTO project (title, difficulty, span) VALUES ('Syntax Highlighter (preferably for your own editor)', 2, 30);
INSERT INTO project (title, difficulty, span) VALUES ('General Compression Library', 2, 30);
INSERT INTO project (title, difficulty, span) VALUES ('Multi-Threaded GREP Implementation (BONUS: Highlighting and line numbers)(Hint: use pThread and AIO)', 2, 30);
INSERT INTO project (title, difficulty, span) VALUES ('Vector/Bitmap Image Manipulation Program', 2, 30);

-- V4, pruned and slightly revised

INSERT INTO project (title, difficulty, span) VALUES ('Download Manager', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Make an elastic producer/consumer task queue', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Markov Chain Sentence Generator', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('English Sentence Parser that points the Context of a Sentence', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('MIDI Player + Editor', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Stock Market Simulator Using Yahoo Spreadsheet Data', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Parametric/Graphic Equalizer for .wav files', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('To-Do List Application', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Verlet Integration', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('TCP/UDP Chat Server + Client (Bonus: No web browser needed)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Music Streaming', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Shazam', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Chatbot', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Curses Text Editor', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('paint.net Clone', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Image to ASCII Art', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Booru (Image Board) Image Downloader', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Image Converter (png -> jpeg -> avif)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('ID3 Reader', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Sound Synthesis (Sine, Square, Sawtooth, etc.) ("Fuck You" mode: Realtime MIDI Playback with Custom instruments)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('C++ IDE Plugin for your Text Editor', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Simple Version Control System supporting branches, commits with messages, unlocking, and per-file configuration of number of revisions and blame. ("Fuck You" mode: Do it all)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Imageboard (Think vichan)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Password Manager (think KeePassXC)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Torrent Client', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Booru Client', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Key Press Bot', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('IP/URL Obscurification (http://www.pc-help.org/obscure.htm)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Radix Base Converter (Give a radix base, convert it to a number, vice versa)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Chan aggregator (Lets users view multiple Chans)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Encrypt / Decrypt Tool (Using AES)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Create a HSV Color Representation', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Window Manager (Bonus: for Wayland)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Basic Relational Database Software (SQL Support Handle Relationships, Focus on Efficiency)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Pixel Editor', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Trivial File Transfer Protocol (TFTP): Allows a client to put a file onto a remote host and retrieve it', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Markdown (HTML/XML) Editor', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('IP Tracking Visualization', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Port Scanner', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Old School Demo Effect (Plasma Tunnel, Scrollers, Zoomers, etc...)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Fizzbuzz (Bonus: in Machine Code / Assembly)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('RPN Calculator', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Coreutils implementation of wc that supports printing numbers optionally in a human readible format (Bonus: for the rest of Coreutils)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Towers of Hanoi', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Music Visualizer', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Unicode Converter (Support for UTF-8, 16LE, 32LE, and 32BE)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Calculate nth digits of pi (Bonus: arbitrary precision, what is the 2^2082 digit of pi?)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Least Squares Fitting Algorithm', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Given an Array of Stocks values over time, find the period of time where the stocks could have made the most money', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Highest Prime Factor Calculator', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Hide and Extract Data in images (Basic Steganography)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Web Page Crawler', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Password Generator (Configurable)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Vigenère cipher', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Game Of Life (Bonus: Save load state / drop-in constructions)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Caesar Cipher Cracker', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Dijkstras Algorithm', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Caesar, ROT 13, ROT 47 ciphers (Bonus: In Assembly)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Program that displays MBR/GUID contents', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Random Name Picker (Bonus: Fetches data from the internet)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Youtube to MP3', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Text to Hexadecimal, Octal, and Binary', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Calculate the first 1,000 digits of pi iteratively', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Sierpinski Triangle', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Mandlebrot Set', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('OpenAI Gym Project', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('AI for Roguelikes', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Sudoku Solver (Using A* algorithm)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Connect-4 AI Player using Aplha-Beta Pruning', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Basic Neural Network - Simulate individual Neurons and their connections', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Real Neural Network - Implement a basic feed forward neural network using matrices for entire layers along with matrix operations for computation', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Convolutional Neural Network: For handwritten digit recognition, test on MNIST database (Use TensorFlow, Theano, etc)', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Convolutional Neural Network: Implement your own Convolutional N.N. for handwritten digit recognition.', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Virtual Machine with a script that writes "Hello, World!"', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Basic Bootloader', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Terminal Shell (Executable Binaries, Pipes, Redirection, History,) (Bonus 1: Supports VT100) (Bonus 2: Make it have its own Terminal Emulator', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('HTML + JavaScript Debugger', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('Write an Interpreted LISP-like Programming Language', 1000, 1000);
INSERT INTO project (title, difficulty, span) VALUES ('make an application tha tis capable of mounting filesystems from othe OSes using the FUSE model', 1000, 1000);
