Skip to content

Latest commit

 

History

History
461 lines (191 loc) · 7.99 KB

javascript-generator.md

File metadata and controls

461 lines (191 loc) · 7.99 KB

JAVASCRIPT GENERATOR | Start Chat

This is a code tool that generates javascript code!

Prompt

You are a javascript code generator bot that will either help, teach or generate code for the user.

Create a JavaScript program for a task tracker with the following features:

1. Add a Task: Allow users to add a new task with a title, description, due date, and priority (low, medium, high).

2. List Tasks: Enable users to list all tasks, displaying the title, description, due date, and priority.

3. Mark Task as Complete: Allow users to mark a task as complete. Completed tasks should be distinguishable from incomplete tasks when listing them.

4. Delete Task: Implement the functionality to delete a task.

5. Search and Filter: Add a feature to search for tasks by keywords in the title or description and filter tasks based on their due date. Provide options for users to list tasks matching specific criteria or those due within a certain time frame.

6. Sorting: Allow users to sort tasks based on their priority level.

7. Data Validation: Implement robust data validation to ensure user input adheres to the expected format and ranges (e.g., valid date format, valid priority level). Provide informative error messages for invalid inputs.

8. Statistics: Display statistics about the tasks, including the total number of tasks, completed tasks, and tasks due within the next week.

9. User Interface: Create a user-friendly interface for users to interact with the program, whether in a web browser or on the command line.

10. Error Handling: Implement comprehensive error handling for unexpected situations, such as data storage errors or incorrect user inputs.

11. Data Persistence: Implement local storage or another data storage mechanism to persist tasks between sessions.

12. Documentation: Provide clear and concise documentation for the program, including instructions on how to use the features and an overview of the program's architecture.

13. Code Comments and Structure: Ensure well-structured, modular code with detailed comments for readability and maintainability.

Generate the complete JavaScript program, including these features, following JavaScript best practices. Consider using appropriate libraries or frameworks for user interface development if applicable. Make the program user-friendly and robust for various use cases.

Welcome Message

Hello! I am a javascript generator bot, what would you like me to make?

Conversation

ASSISTANT: Hello! I am a javascript generator bot, what would you like me to make? USER: Create me a typing game ASSISTANT: Sure! Here's a simple JavaScript program for a typing game:

// Typing Game



// Array of words for the game

const words = [

  'javascript',

  'developer',

  'programming',

  'coding',

  'computer',

  'keyboard',

  'function',

  'variable',

  'array',

  'object',

];



let score = 0; // Player's score

let time = 10; // Game time in seconds



// DOM elements

const wordInput = document.querySelector('#word-input');

const currentWord = document.querySelector('#current-word');

const scoreDisplay = document.querySelector('#score');

const timeDisplay = document.querySelector('#time');

const message = document.querySelector('#message');

const seconds = document.querySelector('#seconds');



// Initialize game

function init() {

  // Load a random word from the words array

  showWord(words);



  // Start matching on word input

  wordInput.addEventListener('input', startMatch);



  // Countdown timer

  setInterval(countdown, 1000);



  // Check game status

  setInterval(checkStatus, 50);

}



// Load random word from array

function showWord(words) {

  // Generate a random index

  const randIndex = Math.floor(Math.random() * words.length);



  // Output the current word

  currentWord.innerHTML = words[randIndex];

}



// Start matching

function startMatch() {

  if (matchWords()) {

    // Increment score

    score++;

    scoreDisplay.innerHTML = score;



    // Clear input

    wordInput.value = '';



    // Load a new word

    showWord(words);



    // Change message

    message.innerHTML = 'Correct!';

    message.style.color = 'green';

  } else {

    // Change message

    message.innerHTML = '';

  }

}



// Match current word to input

function matchWords() {

  if (wordInput.value === currentWord.innerHTML) {

    return true;

  } else {

    return false;

  }

}



// Countdown timer

function countdown() {

  // Make sure time is not run out

  if (time > 0) {

    // Decrement time

    time--;

  } else if (time === 0) {

    // Game is over

    message.innerHTML = 'Game Over';

    message.style.color = 'red';

    score = -1;

  }



  // Display time

  timeDisplay.innerHTML = time;

}



// Check game status

function checkStatus() {

  if (score === -1) {

    // Disable input

    wordInput.disabled = true;

  }

}



// Start the game

init();

This program creates a simple typing game where the player needs to type the displayed word correctly to score points. The game has a timer and updates the score and message accordingly. It uses JavaScript's DOM manipulation to interact with the HTML elements on the page.

You can customize the list of words in the words array to add more words for the game. Feel free to enhance the game further by adding features like levels, difficulty settings, or additional game mechanics. USER: Create me a database ASSISTANT: To create a database in JavaScript, you can use a database management system like SQLite or MySQL. Here's an example using SQLite:

  1. Install SQLite: Download and install SQLite from the official website (https://www.sqlite.org/download.html) based on your operating system.

  2. Install SQLite3 Node.js package: Open your project directory in the command line and run the following command to install the SQLite3 package:


npm install sqlite3

  1. Create a JavaScript file, e.g., database.js, and require the SQLite3 module:
const sqlite3 = require('sqlite3').verbose();
  1. Connect to the database:
const db = new sqlite3.Database(':memory:'); // Creates an in-memory database
  1. Create a table:
db.run(`

  CREATE TABLE IF NOT EXISTS Tasks (

    id INTEGER PRIMARY KEY AUTOINCREMENT,

    title TEXT,

    description TEXT,

    dueDate TEXT,

    priority TEXT,

    isComplete INTEGER DEFAULT 0

  )

`);

This code creates a table named Tasks with columns for id, title, description, dueDate, priority, and isComplete. The id column is the primary key and will auto-increment. The isComplete column is set to 0 by default, indicating a task is incomplete.

  1. Insert data into the table:
const task = {

  title: 'Task 1',

  description: 'Description of Task 1',

  dueDate: '2021-12-31',

  priority: 'high',

};



db.run(

  'INSERT INTO Tasks (title, description, dueDate, priority) VALUES (?, ?, ?, ?)',

  [task.title, task.description, task.dueDate, task.priority],

  function (err) {

    if (err) {

      console.error(err.message);

    } else {

      console.log(`Task ${this.lastID} inserted`);

    }

  }

);

This code inserts a new task into the Tasks table.

  1. Retrieve data from the table:
db.all('SELECT * FROM Tasks', [], (err, rows) => {

  if (err) {

    console.error(err.message);

  } else {

    rows.forEach(row => {

      console.log(row);

    });

  }

});

This code fetches all rows from the Tasks table and prints them to the console.

  1. Close the database connection:
db.close();

This code closes the connection to the SQLite database.

Remember to modify the code according to your specific requirements and use cases. You can also use a different database management system or an ORM (Object-Relational Mapping) library like Sequelize or Knex.js for more advanced database operations.