-
As a user, I wish to learn a new language and hence I would like to be able to select a language that I want to learn.
-
As a learner, I would like to learn a new language of interest at a pace that I am comfortable in. I would hence prefer to choose a level of difficulty (basic, intermediate and advanced) for the language course that I am enrolled in, depending on my confidence level.
-
As a learner, I wish to test my level of understanding for my enrolled language through proficiency assessments. I would also like to try out assessments for different levels to gauge my current competency for the enrolled language.
-
As a user, I would feel motivated to continue using the application if I can get incentives (achievements) during the course of my learning, such as completing courses and passing assessments.
The Fun Language App allows users to have a fun experience learning a new language of interest.
-
Authentication (login and registration)
-
Homepage, Choose Language Page and Landing Page
-
Profile page and associated features (update & delete account, upload profile picture)
-
English Course and levels of difficulty
-
Gamification (progress component and achievement system)
-
Interactive interface
-
Proficiency assessments
-
Self-practice components (oral speaking page and practice assessments)
-
Email verification and forget password features
-
MongoDB (Document Database)
-
Express.js (Server-side Web Framework)
-
React.js (Client-side JavaScript Framework)
-
Node.js (JavaScript Server Platform)
-
Cloudinary (for uploading and storing profile picture)
-
Vercel (app deployment)
-
Chakra UI (app design)
-
Nodemailer (for sending email to user)
-
Jest (unit testing)
-
Cypress (end to end testing and integration testing)
-
Figma (prototyping landing page)