Jeb4dev / keyboard-race

Practise and test your typing skills by competing against others and get statics of how you did.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Keyboard race

Purpose

This project was made as part of the weekly programming challenge hosted by DevJam. The project was made for learning purposes. Made by Jeb and mihett05.

Live Demo image image

About the Challenge

πŸ›  Difficulty Level: Intermediate

πŸ“… Start: November 19th
πŸ“… Deadline: November 25th 16:00 (4PM) GMT

πŸ“ Project Description

Typing practice displays a word which you must then type within a specific interval of time

πŸ“‘User Stories
  • User can click a 'Start Practice' button to start the practice session.
  • When a practice session starts, the timer starts increasing
  • User is shown a word
  • User can type the word in a text input box
  • If a user enters an incorrect letter, the text input box is cleared
  • If a user enters all letters correctly, then the text input box is cleared and a new word is shown
  • User can click "End Practice" button to end the session.
  • When the session ends, the typing speed is shown (words per minute)
🌟 Bonus features (optional)
  • Text box is not cleared when a wrong letter is typed instead as the user is writing the word, the correct letters are marked as green and the incorrect letters are marked as red
  • User can see their statistics across multiple session
  • Users can login and see how their score compared with others (leaderboard)
  • Users can compete with others

Tech

Frameworks and libraries:

  • Flask - Micro web framework written in python.
  • Flask-Socketio Flask-SocketIO gives Flask applications access to low latency bi-directional communications between the clients and the server.
  • Flask-Restful - Flask-RESTful is an extension for Flask that adds support for quickly building REST APIs.
  • React - A JavaScript library for building user interfaces.
  • Vite - Next Generation Frontend Tooling.

Deployment

  • Firebase - Firebase helps you build and run successful apps.
  • Heroku - Heroku is a cloud platform as a service supporting several programming languages.

Installation and running

This app requires python 3.7+ to run.

Clone git repo

git clone https://github.com/JesperKauppinen/keyboard-race.git

After cloning or downloading this git repo, install required python libraries

pip install -r requirements.txt

run app.py

python app.py

Deployment

App is hosted in heroku (backend) and firebase (frontend).

Development

Want to contribute? Great! Give feedback, suggest new features, maybe even create pull request.

Credits

License

MIT

About

Practise and test your typing skills by competing against others and get statics of how you did.


Languages

Language:Python 55.2%Language:TypeScript 43.4%Language:Mako 0.8%Language:HTML 0.6%