Inspiration
My inspiration were typing.io and speedcoder.net both really great speed typing web apps. I went for a dark theme instead of a white background and used react as my frontend framework to add a different feel and design. I plan to add login and profiles to track your progress and rate your WPM and Error statistics to calculate your score in each language you use. Eventually it would be great to use web-sockets to host speed-coding races between multiple people simultaneously and have publicly posted leaderboards. It would be a great way for talented speed-coders to advertise their skills!
What it does
It is a speed typing game for coders to practice their overall efficiency in different programming languages using prompts from classic coding problems that you should probably be studying anyway if you are in the process of interviewing
How I built it
I built it with MERN using Express as a micro-framework and bootstrapped with Create-React-App. I have a separate api/route for each language which fetches a different prompt randomly from a single mongoDB collection using the language name concatenated with a randomly generated number.
Challenges I ran into
I ran into a challenge with dynamic highlighting the current index stored in the React component's state. I solved it by adding an event lister to the window on Keypress that inserted a CSS span around the current index with a class of highlight or error depending on correct or incorrect input/keystroke
Accomplishments that I'm proud of
Making a super useful application in a short time and using mongoDB for it!
What I learned
I learned a lot about MongoDB and the MERN stack and the benefits of a minimalist application. Even though this app is one of my least complex it has gotten some of the best feedback. People enjoy using it and even in my own experience my typing has gotten a lot better with fewer keystrokes to finish the same code.
What's next for SpeedCoder
Adding more prompts and more languages, constructing a leaderboard and maybe have real time competitions or ghost competitions where you can race your previous best time (like in Mario Kart)
Log in or sign up for Devpost to join the conversation.