Hello friends,
I want to develop a online typing tutor using codeigniter......for hindi language (typing in computer with the help of hindi indic 3 or hindi indic 2 typing tool) .......i know the php and codeigniter with css.....please give me guidance to develop it......what language i need to learn.....and how can be typing using these tool............. how many days will it take to learn............

Dani AI

Generated

Practical, focused notes for building a Remington‑GAIL Hindi typing tutor (short checklist, gotchas, minimal code pattern).

Treat Remington‑GAIL as a keyboard layout and keep all stored text in Unicode (Mangal or similar). Relying on old OS IMEs (Hindi Indic Input 2/3) is fragile because those IMEs are not consistently supported on modern platforms; consider shipping an in‑browser Remington layout (KeymanWeb or a small JS mapper) so the tutor behaves predictably for every user. (keyman.com)

Client-side is the core: timing, accuracy and live feedback must use committed characters (IME composition) rather than raw keydown events. Use compositionstart / compositionend and input (or InputEvent.isComposing) to decide when a character is final, start the timer on the first committed edit, and compute metrics (WPM ≈ correct_chars/5 per minute; accuracy = correct_chars / total_typed). Minimal pattern to handle composition safely:

const el = document.getElementById('typingArea');
let composing = false;
let startTime = null;

el.addEventListener('compositionstart', () => composing = true);
el.addEventListener('compositionend', (e) => {
  composing = false;
  onCommittedInput(e.target.value);
});
el.addEventListener('input', (e) => {
  if (!composing) onCommittedInput(e.target.value);
});

function onCommittedInput(text) {
  if (!startTime) startTime = Date.now();
  // compute diff against target, update WPM/accuracy, highlight errors
}

This approach follows the browser composition/input model and avoids double‑counting IME intermediate keystrokes. (developer.mozilla.org)

Server-side responsibilities (CodeIgniter): store Unicode paragraphs, accept validated POSTed session results (elapsed_ms, wpm, accuracy, raw_text), and serve user history/leaderboards. If importing old test material in legacy fonts (KrutiDev), convert to Unicode before use (many converters exist). Plan a test matrix (Windows versions, major browsers, OS IME vs in‑browser IME) — front‑end IME handling is the main engineering lift (design up front, as urged). The stack choice ( comment) is flexible; the critical learning is robust JS handling of IMEs and cross‑platform testing. (krutidevtounicode.com)

Checklist: canonical Unicode corpus, decide IME strategy (OS IME + fallback or in‑browser IME), composition‑aware input engine, simple REST result API, cross‑platform QA.

Recommended Answers

All 4 Replies

Not specific to your choice of tool, I remember I had to pickup a new language and I didn't feel comfortable with it for about 3 months. If you can become proficient in a new language in days, that's pretty amazing. Even after that period I continue to learn more.

Back to developing any app. Not much has changed over the years. You design your app first. You may sketch out screens if it's something that works with users then think and sketch out psuedo code about what goes on to show the screen, do something and show a result.

If you haven't done the design, it's not time to code.

It will be enough to learn javascript more to complete the typing tutor?

It will be enough to learn PHP more to complete the typing tutor?

Javascript for the front end interaction. Php can handle the server side stuff. You may benefit from learning the language (js) first before getting involved with any frameworks or libraries (jquery, react, angular...).

Alternatively you could use js as nodejs for the whole thing, cutting out php and codeigniter entirely.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.