You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An Ai-powered project management tool for solo developers
Describe the problem you'd like to solve
Working on solo projects can feel lonely and it's difficult to be disciplined about the way you work without the structure of a team around you. What if you had a sort of clippy on steroids to help you through?
Here's how it works:
You input a project you're working on, be it a to-do list app, a snake game, etc.
Following this, the system breaks your project down into discrete tasks, each with an estimated time of completion.
If you want to make adjustments, you can edit these tasks or their respective time estimations and resubmit them.
[
{
"task": "Plan the game",
"description": "Understand the mechanics of the snake game and define the functionalities you want to implement. Also, decide on the visual layout and UI elements required.",
"timeEstimate": "1 day"
},
{
"task": "Set up the development environment",
"description": "Ensure that Node.js and npm are installed. Create a new React project using Create React App and set up any necessary libraries or tools you'll need.",
"timeEstimate": "1 day"
},
{
"task": "Build game logic",
"description": "Develop the game logic. This includes the movement of the snake, what happens when it eats food, what happens when it hits the wall or itself.",
"timeEstimate": "4 days"
},
{
"task": "Develop the user interface",
"description": "Create the components for your game's UI. This includes the game board, the score display, and any controls or buttons you've planned.",
"timeEstimate": "2 days"
},
{
"task": "Implement state management",
"description": "Use React's state and props to manage the game's state - this could include the snake's position, the position of the food, the game score, and whether the game is ongoing, won, or lost.",
"timeEstimate": "2 days"
},
{
"task": "Adding CSS",
"description": "Style your components and game board using CSS. You may want to consider making the game responsive so it looks good on all screen sizes.",
"timeEstimate": "2 days"
},
{
"task": "Testing",
"description": "Test your game thoroughly. This includes checking if the game logic works as expected, UI renders correctly and the game provides correct responses to user inputs.",
"timeEstimate": "2 days"
},
{
"task": "Deployment",
"description": "Deploy your game to a hosting platform. You could use options like GitHub Pages, Vercel, or Netlify. Make sure to test the deployed version.",
"timeEstimate": "1 day"
}
]
For a more detailed analysis, you can further break down each task into specific issues, which can then be broken down into more granular issues. This action triggers an update and recalculation of time estimations.
[
{
"issue": "Define Game Rules",
"description": "Understand and clearly define the rules of the game, such as how the snake moves, what happens when it eats food, and what happens when it collides with the wall or itself.",
"timeEstimate": "1 day"
},
{
"issue": "Implement Snake Movement",
"description": "Develop the logic for snake movement in all four directions. The snake should move smoothly, square by square, not pixel by pixel.",
"timeEstimate": "1 day"
},
{
"issue": "Implement Food Generation",
"description": "Write the code to randomly generate food on the game board. Ensure the food doesn't appear where the snake currently is.",
"timeEstimate": "1 day"
},
{
"issue": "Handle Eating Food",
"description": "Create the logic for what happens when the snake eats food. This usually means the snake grows in length and the player's score increases.",
"timeEstimate": "1 day"
},
{
"issue": "Implement Collision Detection",
"description": "Detect when the snake has collided with the wall or itself. This usually means the game is over.",
"timeEstimate": "1 day"
},
{
"issue": "Implement Scoring",
"description": "Keep track of the player's score, which typically increases when the snake eats food.",
"timeEstimate": "1 day"
},
{
"issue": "Implement Game Over Condition",
"description": "Implement a condition to check when the game is over, usually when the snake collides with the wall or itself. When the game is over, stop the game and display a game over message.",
"timeEstimate": "1 day"
}
]
[
{
"step": "Define Snake Data Structure",
"description": "Determine how to represent the snake in your code. A common way to do this is as an array of coordinates representing the snake's body segments.",
"pseudocode": "snake = [{x: 5, y: 5}, {x: 4, y: 5}, {x: 3, y: 5}]; // Represents a snake with length 3, moving to the right",
"timeEstimate": "2 hours"
},
{
"step": "Implement Movement Direction",
"description": "Define the possible directions the snake can move. Usually, the snake can move up, down, left, or right.",
"pseudocode": "const DIRECTIONS = { UP: {x: 0, y: -1}, DOWN: {x: 0, y: 1}, LEFT: {x: -1, y: 0}, RIGHT: {x: 1, y: 0}};",
"timeEstimate": "1 hour"
},
{
"step": "Implement Change of Direction",
"description": "Add a way for the player to change the direction of the snake. Typically, this is done using keyboard input.",
"pseudocode": "document.addEventListener('keydown', function(event) { if (event.key === 'ArrowUp') currentDirection = DIRECTIONS.UP; ... });",
"timeEstimate": "2 hours"
},
{
"step": "Implement Movement Update",
"description": "Create a function to update the snake's position based on the current direction. The snake moves by adding a new segment in the current direction at the front and removing the last segment, unless it has just eaten food.",
"pseudocode": "function updateSnake() { const newHead = {x: snake[0].x + currentDirection.x, y: snake[0].y + currentDirection.y}; snake.unshift(newHead); if (!justAteFood) snake.pop(); }",
"timeEstimate": "3 hours"
},
{
"step": "Add Movement Loop",
"description": "Implement a main game loop that updates the snake's position at regular intervals to create the illusion of movement.",
"pseudocode": "setInterval(updateSnake, 100); // Updates the snake's position every 100ms",
"timeEstimate": "1 hour"
}
]
Tasks or issues can be marked as completed, which grays them out on the interface and recalculates the remaining project time.
Stretch features:
You attach more detailed info such as the technologies you want to use and your experience level.
The board helps you generate user stories.
When an issue is marked as complete, you can submit your code for a review.
Who are the stakeholders?
Solo developers that are self taught and looking for external guidance. More experienced solo developers that prefer to brainstorm with another person. Software development courses.
Other considerations
We need to consider data and privacy concerns.
Although we will have a tech-savvy userbase the feel of the application needs to be intuitive because step by step explanations may be cumbersome.
What Ai Kan is not:
An engine that develops your project for you
a one-stop-shop for learning how to code
A personal assistant that reminds you of tasks
What is currently being done to solve this problem?
I personally hate the github project board. There are a couple of ai project management tools already and even an AI kanban board. While they're feature-rich they are pretty bloated and it takes way too much set up to get started. I want something that you can just get going with right away.
What technology might be interesting to explore?
I think it would make most sense to use react on the front end and express/SQLite on the backend. But I'm interested to try using firebase got login/Auth. I'm also open to using vanilla JS on the front end if react is out of most people's comfort zones, though I think it would be v cumbersome to manage things like state.
The text was updated successfully, but these errors were encountered:
Ai-Kan
An Ai-powered project management tool for solo developers
Describe the problem you'd like to solve
Working on solo projects can feel lonely and it's difficult to be disciplined about the way you work without the structure of a team around you. What if you had a sort of clippy on steroids to help you through?
Here's how it works:
You input a project you're working on, be it a to-do list app, a snake game, etc.
Following this, the system breaks your project down into discrete tasks, each with an estimated time of completion.
If you want to make adjustments, you can edit these tasks or their respective time estimations and resubmit them.
For a more detailed analysis, you can further break down each task into specific issues, which can then be broken down into more granular issues. This action triggers an update and recalculation of time estimations.
Tasks or issues can be marked as completed, which grays them out on the interface and recalculates the remaining project time.
Stretch features:
Who are the stakeholders?
Solo developers that are self taught and looking for external guidance. More experienced solo developers that prefer to brainstorm with another person. Software development courses.
Other considerations
We need to consider data and privacy concerns.
Although we will have a tech-savvy userbase the feel of the application needs to be intuitive because step by step explanations may be cumbersome.
What Ai Kan is not:
What is currently being done to solve this problem?
I personally hate the github project board. There are a couple of ai project management tools already and even an AI kanban board. While they're feature-rich they are pretty bloated and it takes way too much set up to get started. I want something that you can just get going with right away.
What technology might be interesting to explore?
I think it would make most sense to use react on the front end and express/SQLite on the backend. But I'm interested to try using firebase got login/Auth. I'm also open to using vanilla JS on the front end if react is out of most people's comfort zones, though I think it would be v cumbersome to manage things like state.
The text was updated successfully, but these errors were encountered: