Code Monkey home page Code Monkey logo

odin-bot-v2's Introduction

The Odin Project

The Odin Project (TOP) is an open-source curriculum for learning full-stack web development. Our mission is to provide a comprehensive curriculum to learn web development for free. We help users learn the skills and build the impressive portfolio of projects they need to get hired as a web developer.

Some of the topics we cover include:

  • Ruby
  • Ruby on Rails
  • SQL
  • HTML and CSS
  • Javascript
  • Node
  • React
  • How to go about getting a job in the industry

This repo contains the TOP app which pulls in lesson content as well as front-end and back-end code. To see the actual lesson content that gets pulled in, please go to the TOP curriculum repo.

Our community can be found on the TOP Discord server.

Contributing

Build Status

The Odin Project depends on open-source contributions to improve, grow, and thrive. We welcome contributors of all experience levels and backgrounds to help maintain this awesome curriculum and community. If you would like to contribute to our curriculum, be sure to thoroughly read our contributing guide.

Feel free to also watch this scrimba walkthrough of The Odin Project web app repo, which will give you an introduction to this repository. Note that since this scrimba was recorded, the content and/or structure may have changed in this repo. The focus of this scrimba is less on the actual content, but more of a high level overview.

odin-bot-v2's People

Contributors

01zulfi avatar aayushmau5 avatar aplyd avatar arku avatar asartea avatar boxenofdonuts avatar codyloyd avatar crespire avatar daegudude avatar dependabot[bot] avatar dovimaj avatar fernie-cpu avatar i3uckwheat avatar jingjing142 avatar joncolman94 avatar justwavethings avatar kevinmulhern avatar manonlef avatar maoshizhong avatar marvingay avatar mclilzee avatar mdlugosz1 avatar robocopyzer0 avatar thatblindgeye avatar timothyling1994 avatar twalton83 avatar wise-king-sullyman avatar xandora avatar zachmmeyer avatar zadag avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

odin-bot-v2's Issues

/cqg should be its own word/group

The regex for this command currently fails our standards for our already-implemented tests. We need this command's string to only be triggered if the word itself is used in a message, otherwise it will accidentally be triggered by unrelated messages in the chat.

An example of a regex that passes all of the necessary test is our /notes command .

Once you begin fixing the regex, you may ensure the regex passes all necessary requirements by running npm test commandName.test.js in the terminal. A passing output will look like this:

Screen Shot 2021-01-22 at 9 08 20 AM

Once you have a passing regex, our pre-push hook will not allow you to push your commit because the other commands currently do not pass their respective tests. To circumvent our pre-push hook, please push your changes using git push --no-verify, then make your pull request.

ACCEPTANCE CRITERIA:

  • The fixed regex passes all regex-related tests
  • The snapshot tests all pass and are not made obsolete by the new regex

/windows command should return a MessageEmbed

We are in the process of moving our commands to a MessageEmbed feature that makes the commands more obvious, and take up less space in the chat. An example of this is below.
Screen Shot 2021-03-30 at 7 56 51 PM

Embed Guide

Our /windows command embed will need a description with the value set to our current copy, sans the lesson's URL. We should also use setURL and set it to the URL in our current string. Additionally, I would like to provide emphasis around the "The Odin Project does not support Windows, WSL, or any OS outside of our recommendations.", and have this part of the string now be bold.

Completion Criteria:

  • We leverage the Discord.MessageEmbed() constructor
  • We have an embed with the aforementioned fields
  • Updated snapshot
  • Correct grammar and spelling
  • All tests pass

Please run your own instance of the bot and provide a screenshot of the embed in your PR.

ModMail

User Stories

  • As a member of the TOP Discord server, I would like to be able to privately report any inappropriate behavior or rule-breaking to the moderators of the server so that I can continue to have a safe and respectful time in the server.
  • As a moderator, I want to be able to have an avenue for server members to formally report behavior so that the maintainer team can swiftly address the behavior
  • As a moderator, I would like to be able to have a central place where reported behavior is archived/recorded so repeated infractions are easily traceable

Discovery

https://www.notion.so/ModMail-Discovery-3db4dd9334494cfba215508f6eed31ae

Completion Criteria

  • bot sends a message to moderators whenever someone DMs it
  • the bot sends an embed with the date, time, and reporting user, any links provided, status of issue, and a description
  • Nice to have: edits embed when a checkmark react denoting the issue is resolved is placed on the message

/mv should be its own word or group

The regex for this command currently fails our standards for our already-implemented tests. We need this command's string to only be triggered if the word itself is used in a message, otherwise it will accidentally be triggered by unrelated messages in the chat.

An example of a regex that passes all of the necessary test is our /notes command .

Once you begin fixing the regex, you may ensure the regex passes all necessary requirements by running npm test commandName.test.js in the terminal. A passing output will look like this:

Screen Shot 2021-01-22 at 9 08 20 AM

Once you have a passing regex, our pre-push hook will not allow you to push your commit because the other commands currently do not pass their respective tests. To circumvent our pre-push hook, please push your changes using git push --no-verify, then make your pull request.

ACCEPTANCE CRITERIA:

  • The fixed regex passes all regex-related tests
  • The snapshot tests all pass and are not made obsolete by the new regex

/help command needs to return a MessageEmbed

We are in the process of moving our commands to a Message Embed feature that makes the commands more obvious, and take up less space in the chat. An example of this is below.
Screen Shot 2021-03-30 at 7 56 51 PM

Embed Guide

Our /help command will need to have a title, a description, and fields with their own values for each separate "bullet" in the command as it currently stands.

Completion Criteria:

  • We leverage the Discord.MessageEmbed() constructor
  • We have an embed with the aforementioned fields
  • Updated snapshot
  • Correct grammar and spelling
  • All tests pass

Please run your own instance of the bot and provide a screenshot of the embed in your PR.

/faq command needs to return a MessageEmbed

We are in the process of moving our commands to a MessageEmbed feature that makes the commands more obvious, and take up less space in the chat. An example of this is below.
Screen Shot 2021-03-30 at 7 56 51 PM

Embed Guide

Our /faq command will need to have a title with the value "Frequently Asked Questions", a description with the value "The definition of insanity is answering the same question over and over again when we have an #FAQ! Help us stay sane by giving it a read."

Completion Criteria:

  • We leverage the Discord.MessageEmbed() constructor
  • We have an embed with the aforementioned fields
  • Updated snapshot
  • Correct grammar and spelling
  • All tests pass

Please run your own instance of the bot and provide a screenshot of the embed in your PR.

Create /top command

We need a quick and easy command that links people to https://theodinproject.com/

A similar command to base this off of would be our /windows command.

Completion Criteria:

  • New command that is triggered by the string "/top", with a fun little string prepending it
  • Tested, with all tests passing and a new snapshot
  • Link embed is removed SEE HERE

help.js commands need to be triggered by single word/group

The regexes for the commands in this file currently fail our standards for our already-implemented tests. We need the commands' strings to only be triggered if the word OR phrase itself is used in a message, otherwise it will accidentally be triggered by unrelated messages in the chat.

An example of a regex that passes all of the necessary test is our /notes command .

Once you begin fixing the regex, you may ensure the regex passes all necessary requirements by running npm test commandName.test.js in the terminal. A passing output will look like this:

Screen Shot 2021-01-22 at 9 08 20 AM

Once you have a passing regex, our pre-push hook will not allow you to push your commit because the other commands currently do not pass their respective tests. To circumvent our pre-push hook, please push your changes using git push --no-verify, then make your pull request.

ACCEPTANCE CRITERIA:

  • The fixed regex passes all regex-related tests
  • The snapshot tests all pass and are not made obsolete by the new regex
  • Free of ESLint errors

Upgrade Discord.JS from v11 to v12

Discord will be introducing breaking changes that will conflict with DiscordJS v11.
Screen Shot 2021-03-31 at 5 03 25 PM

We will need to:

  • Identify all areas that are affected by the upgrade
  • Transition it over to v12 compliant syntax
  • Update bot documentation where necessary
  • Update tests (specifically, mocks) where necessary

Reword /question command

In an effort to make the command come off as more of a "call in" rather than a "call out", we'd like to change the wording of the /question command from "It looks like you're trying to ask a question! Please give this page a read" to something that may come off a little more friendly, such as "Help others help you, check out this article:". Open to suggestions.

Completion Criteria:

  • The callback needs to return an update phrase
  • The snapshot test for the callback must be updated (see README for how to update snapshot tests)
  • All tests must pass

simpleCommands.js commands need to pass all tests

NOTE: There are multiple commands in this file. All of these commands must pass.

The regexes for the commands in this file currently fail our standards for our already-implemented tests. We need each command's string to only be triggered if the word itself is used in a message, otherwise it will accidentally be triggered by unrelated messages in the chat.

An example of a regex that passes all of the necessary test is our /notes command .

Once you begin fixing the regex, you may ensure the regex passes all necessary requirements by running npm test commandName.test.js in the terminal. A passing output will look like this:

Screen Shot 2021-01-22 at 9 08 20 AM

Once you have a passing regex, our pre-push hook will not allow you to push your commit because the other commands currently do not pass their respective tests. To circumvent our pre-push hook, please push your changes using git push --no-verify, then make your pull request.

ACCEPTANCE CRITERIA:

  • The fixed regex passes all regex-related tests
  • The snapshot tests all pass and are not made obsolete by the new regex

Create /faq command

We need a quick and easy command that links people to our new discord faq channel: https://discord.com/channels/505093832157691914/823266307293839401/823266549912829992

A similar command to base this off of would be our /time command. Check it out here.

Completion Criteria:

  • New command that is triggered by the string "/faq", with a fun little string prepending it along the lines of "Your question has been answered in our faq" (be creative/witty!)
  • Be able to mention people
  • Tested, with all tests passing and a new snapshot
  • Link embed is removed SEE HERE

Add ESLint dependency

  • We should add ESLint as a dependency with the same rules as the theodinproject repo in order to remain consistent.

Completion criteria:

  • Setup ESLint
  • use AirBnB rules
  • setup pre-push hook to check eslint for issues before pushing

Awarding points (++) in Discord Threads

Threads are a recent Discord feature to help people participate in important conversations/issues. It is also good to separate each "problem" in the TOP Discord. I would like to suggest to make it so you can award points in these threads

Point should not be awarded in #bot-spam-playground

User Stories

As a maintainer, I would like to prevent the abuse of the points system in a largely unmonitored spam channel, so we should add a restriction to the awardPoints function that determines if the channel is the #bot-spam-playground, and returns a message stating that you can't award points there.

Completion Criteria

  • points are unable to be awarded in specified channel(s)
  • config file that allows us to add an array of channel IDs that points cannot be awarded in (optional)
  • message letting awarder know that points cannot be added in this channel (private message only seen by awarder?)
  • unit tests

make tests & require them for new command additions

Would help fight buggy regex issues


Briggs wrote the below:

  • Setup jest as a dev dependency
  • Add unit tests for all commands
  • Add unit tests for all helper functions that are public
  • Add issues for any problems identified by the tests
  • Add a pre-push git-hook to prevent pushing (there may be a lib to help with this)

The goals of these tests are to help prevent REGEX issues, as well as making sure the bot is solid. If you'd like to help with this, I'm organizing a team to do this. Please comment here if you'd like to be on the team!

Fix ESLint Errors

Nearly all of our code does not comply with our ESLint configuration, so we will need to manually fix these errors to ensure accuracy, and make decisions for refactoring where necessary.

Completion Criteria:

  • ESLint no longer throws any errors or warnings
  • All files are linted and fixed

Repl.it url needs to be updated

Repl.it is changing to a new url, replit.com, and our /code command needs to be updated to fix this, as well as our snapshot tests.

/code command needs to be a rich embed

We are in the process of moving our commands to a Rich Embed feature that makes the commands more obvious, and take up less space in the chat. An example of this is below:

Screen Shot 2021-03-23 at 7 29 44 AM

https://discordjs.guide/popular-topics/embeds.html#embeds NOTE: We are using v11, please make sure you are reading the instructions for the RichEmbed class, not theMessageEmbed class.

Our /code command will need to have a title, a description, and a regular field for the typical code snippets markdown syntax (the backticks). Focus on changing the format, but not changing the copy where possible. We will want additional inline-fields for Repl.it (Javascript/Ruby), CodeSandBox (Webpack/React), and Codepen (Basic HTML/CSS/JS).

Completion Criteria:

  • We leverage the Discord.RichEmbed() constructor
  • We have an embed with the aforementioned fields
  • updated snapshot
  • correct grammar and spelling
  • All tests pass

points.js commands regexes need to pass their tests

The regexes for some of the commands in this file currently fail our standards for our already-implemented tests. We need the command's string to only be triggered if the word OR phrase itself is used in a message, otherwise it will accidentally be triggered by unrelated messages in the chat.

An example of a regex that passes all of the necessary test is our /notes command .

Once you begin fixing the regex, you may ensure the regex passes all necessary requirements by running npm test commandName.test.js in the terminal. A passing output will look like this:

Screen Shot 2021-01-22 at 9 08 20 AM

Once you have a passing regex, our pre-push hook will not allow you to push your commit because the other commands currently do not pass their respective tests. To circumvent our pre-push hook, please push your changes using git push --no-verify, then make your pull request.

ACCEPTANCE CRITERIA:

  • The fixed regex passes all regex-related tests
  • The snapshot tests all pass and are not made obsolete by the new regex

Create PR and Issue Template

To stay in line with the rest of our repositories, we need to create a template for PRs and Issues.

Completion Criteria:

  • Issues template is created
  • PR template is created

Pre-commit hook should check for ESLint

Many contributors push code that fails our CircleCI checks because they are not forced to lint their code at any point in the Git process.
We should:

  • Update Husky to check for linting errors
  • Create a pre-commit hook for the above

/callbacks command should be its own word/group

The regex for this command currently fails our standards for our already-implemented tests. We need this command's string to only be triggered if the word itself is used in a message, otherwise it will accidentally be triggered by unrelated messages in the chat.

An example of a regex that passes all of the necessary test is our /notes command .

Once you begin fixing the regex, you may ensure the regex passes all necessary requirements by running npm test commandName.test.js in the terminal. A passing output will look like this:

Screen Shot 2021-01-22 at 9 08 20 AM

Once you have a passing regex, our pre-push hook will not allow you to push your commit because the other commands currently do not pass their respective tests. To circumvent our pre-push hook, please push your changes using git push --no-verify, then make your pull request.

ACCEPTANCE CRITERIA:

  • The fixed regex passes all regex-related tests
  • The snapshot tests all pass and are not made obsolete by the new regex

Chore: Use Limit and Offset Params when Fetching the Points from The API in the Leaderboard command

Description

Currently we fetch all the points records from the API and filter them using JS. This makes the leaderboard command code complicated and will eventually become a performance problem.

Letting the database handle this filtering on the api side would be much more efficient and it would simplify the leaderboard bot code significantly. We already have the parameters to do this set up on the api, we just need to use them in the bot.

Acceptance Criteria

  1. When fetching points and no n argument is provided, the limit parameter should default to 5 when making the points api call.
  2. When fetching points and no start argument is provided, the offset parameter should default to 0 when making the points api call.
  3. Otherwise pass the provided n and start arguments through as the limit and offset parameter values respectively.

Example:
using the command: leaderboard n=10 start=5
will translate to the following api call: https://www.theodinproject.com/api/points?limit=10&offset=5

Additional Information

Just to make it clear:

  • The limit param does the the same as the n argument we pass to the leaderboard command in discord
  • The offset param does the the same as the start argument we pass to the leaderboard command in discord

Important
Let me know when this is ready to be merged as there is one more requirement implemented on the bot size to limit the n argument to 25 results returned. This will need to be implemented on the api side and go out at the same time this story goes out.

?++ command should stand out

The command's return points message currently only shows the same copy as the ++ command. It should be altered to better reflect the intent of the message.

/points command should show author's points if no one is mentioned

Currently the /points command requires the author to @ mention themselves if they would like to check their own points. It is more intuitive and common of other bots to check the author's own points without needing to mention themselves.

Completion Criteria:

  • The /points command takes in the author as an argument
  • The /points command should return the author's own points if they have not mentioned another user in their message
  • Regex test is updated to include a case where a user does not mention another user in their message.

Removing embeds when sending link through the bot

In discord, auto-embeds are emitted when sending link through the bot. For example, if you call /callbacks command in the discord, you'll see this embed.

Screen Shot 2021-02-03 at 10 05 14 AM

It'd be nice if we could remove those auto-embeds.

Tasks will be,

  • Find all bot commands that emit the embeds
  • Specify the commands where we don't want the embeds on
  • Modify those commands to remove embeds

Discord - Information on disabling auto-embed

The discussion started here

/leaderboard command should return a MessageEmbed

We are in the process of moving our commands to a MessageEmbed feature that makes the commands more obvious, and take up less space in the chat. An example of this is below.
Screen Shot 2021-03-30 at 7 56 51 PM

Embed Guide

Our /leaderboard command will need to have a title with the value of "Leaderboard", and the description should contain the string of users and their points that is returned from our current command.

Completion Criteria:

  • We leverage the Discord.MessageEmbed() constructor
  • We have an embed with the aforementioned fields
  • Updated snapshot
  • Correct grammar and spelling
  • All tests pass

Please run your own instance of the bot and provide a screenshot of the embed in your PR.

Extend ++ command to award double points for good questions

Description

In an effort to improve the Discord community, the ability for maintainers and core members to award 2 points for good questions should be implemented.

Acceptance Criteria

  • Users with a maintainer or core role are able to use @user ?++ to award points
  • Using the new API query params, the above command should award the mentioned user two points
  • A message stating something like Double points for a great question! @user has XX points!
  • Tests

/shrug commands need to be their own word/group

The regex for these commands currently fail our standards for our already-implemented tests. We need each command's string to only be triggered if the word itself is used in a message, otherwise it will accidentally be triggered by unrelated messages in the chat.

An example of a regex that passes all of the necessary test is our /notes command .

Once you begin fixing the regex, you may ensure the regex passes all necessary requirements by running npm test commandName.test.js in the terminal. A passing output will look like this:

Screen Shot 2021-01-22 at 9 08 20 AM

Once you have a passing regex, our pre-push hook will not allow you to push your commit because the other commands currently do not pass their respective tests. To circumvent our pre-push hook, please push your changes using git push --no-verify, then make your pull request.

ACCEPTANCE CRITERIA:

  • The fixed regex passes all regex-related tests
  • The snapshot tests all pass and are not made obsolete by the new regex

Create /xy command

We'd like to add a command to address the "XY Problem". Make the associated message friendly and/or funny, and link to the xyproblem.info. We want something similar to our /question command.

Completion Criteria:

  • a new command triggered by /xy with a "fun" message that links to the the XY Problem website
  • unit tests and snapshot tests for the new command (please use the /question tests in help.test.js as a reference)
  • all tests pass

Update /debug for JS and Ruby

Since students in the ruby section often ignore the importance of learning debugging as well, it would be great to have a command for both sections.

Update the /debug command to accept the arguments js or rb

It was discussed to have the /debug command without arguments to link to wikipedia's debugging page, but I would if it would better to expand the wording of the bot command to something like this:

Based on the description of your problem, you can get to the root of it using a debugger. Learning how to track down problems like this is an inevitable part of being a developer.

If the argument js is provided, link to (current bot link):
https://developers.google.com/web/tools/chrome-devtools/javascript

If the argument rb is provided, link to:
https://www.theodinproject.com/courses/ruby-programming/lessons/debugging#debugging-with-pry-byebug

Points++ command no longer accepts the star argument

In our refactor of the regexes, we accidentally removed the argument allowing the Discord ⭐ emoji to be used instead of "++".

COMPLETION CRITERIA

  • addPoints() is triggered by @username ⭐ as well as @username ++
  • points.test.js tests all pass

/question command needs to return a MessageEmbed

We are in the process of moving our commands to a MessageEmbed feature that makes the commands more obvious, and take up less space in the chat. An example of this is below.
Screen Shot 2021-03-30 at 7 56 51 PM

Embed Guide

Our /question command will need to have a title with the value "Asking Great Questions", a description with the current command's string, including this article.

Completion Criteria:

  • We leverage the Discord.MessageEmbed() constructor
  • We have an embed with the aforementioned fields
  • Updated snapshot
  • Correct grammar and spelling
  • All tests pass

Please run your own instance of the bot and provide a screenshot of the embed in your PR.

/data command needs new copy and needs to be converted to a MessageEmbed

We are in the process of moving our commands to a MessageEmbed feature that makes the commands more obvious, and take up less space in the chat. An example of this is below:

Screen Shot 2021-03-30 at 7 56 51 PM

Embed Guide

Additionally, we want to update our /data command text to be more friendly and descriptive, so people are more inclined to understand what was wrong with their question.

Our /data Message Embed will need to have a title, a URL that links to this website, and a new description that says:

Instead of asking if anyone can help you, ask your question outright so people can help you!
Bad: "Hey, does anyone know about how to set CSS styles with Javascript?"
Good:
"Hey, I'm having trouble setting CSS styles via Javascript.
Here's my code:

Code snippet 

And here is the error I'm receiving:
Cannot set attribute 'style' of null"

Completion Criteria:

  • We leverage the Discord.MessageEmbed() constructor
  • We have an embed with the aforementioned fields
  • updated snapshot test
  • correct grammar and spelling
  • All tests pass
  • Your PR includes a screenshot of the new embed.

/debug command needs to return a MessageEmbed

We are in the process of moving our commands to a Message Embed feature that makes the commands more obvious, and take up less space in the chat. An example can be seen below:

Screen Shot 2021-03-30 at 7 56 51 PM

Embed Guide

  • Our /debug command embed will need a title, set to the value "Debugging".
  • We will need a description with the value set to "'Based on the description of your problem, you can get to the root of it using a debugger. Learning how to track down problems like this is an inevitable part of being a developer."
  • We should also use setURL and set it to this article.
  • Additionally, we need two fields, titled "Javascript" and "Ruby" , with each respective debugger link currently found in our /debug command.

Because of these changes, the command will no longer need to take in arguments since we are providing both the Ruby and JS resources, as well as the Wikipedia article in the title. Note that our tests will need to be updated to reflect this.

Completion Criteria:

  • We leverage the Discord.MessageEmbed() constructor
  • We have an embed with the aforementioned fields
  • Updated snapshot
  • Correct grammar and spelling
  • js and ruby arguments are removed from the logic of the command
  • Tests are updated to omit testing for ruby or js arguments
  • All tests pass

Please run your own instance of the bot and provide a screenshot of the embed in your PR.

/help command needs to filter out github

We're linking the github help pages, which starts out as /help.github.

Obviously there is a way to filter out the github links, I am not skilled enough yet to make my own PR. It's just frustrating.

Some Party Parrot Links are dead

Some links for the party parrot gifs are dead, such as the stable parrot and twin parrot. When the bot posts the gif, it'll just post the broken url instead of the gif.

image

image

/time command needs to pass all tests

NOTE: Additionally, this command will need to pass the snapshot tests. The the import statement in the spec file needs to be changed to const helpers = require('./mockData), and the references to generateMentions need to be updated to helpers.generateMentions() now that more than one helper is being exported from our mockData file.

The regex for this command currently fails our standards for our already-implemented tests. We need this command's string to only be triggered if the word itself is used in a message, otherwise it will accidentally be triggered by unrelated messages in the chat.

An example of a regex that passes all of the necessary test is our /notes command .

Once you begin fixing the regex, you may ensure the regex passes all necessary requirements by running npm test commandName.test.js in the terminal. A passing output will look like this:

Screen Shot 2021-01-22 at 9 08 20 AM

Once you have a passing regex, our pre-push hook will not allow you to push your commit because the other commands currently do not pass their respective tests. To circumvent our pre-push hook, please push your changes using git push --no-verify, then make your pull request.

ACCEPTANCE CRITERIA:

  • The fixed regex passes all regex-related tests
  • The snapshot tests all pass and are not made obsolete by the new regex

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.