---
# System prepended metadata

title: TCHALAM

---

# TCHALAM

## Table of Contents
1. [Overview](#Overview)
1. [Product Spec](#Product-Spec)
1. [Wireframes](#Wireframes)
1. [Schema](#Schema)

## Overview
### Description
TCHALAM is a preparation application for graduating students to better address university admission exams (Public, Private).

### App Evaluation
- **Category:** Educatif
- **Mobile:** This application is mainly developed for mobiles in order to properly address the exams for university admission
- **Story:** TCHALAM is an online prefact application where all graduating students can prepare quizzes for the university admission exam.
- **Market:** All graduating students who intend to integrate public and private universities can use the application
- **Habit:** This application can be used as often or rarely as the user wishes depending on subject to be prepared.
- **Scope:** The Tchalam application has an educational scope since it is a tool for graduating students  to integrate universities.

## Product Spec

### 1. User Stories (Required and Optional)

**Required Must-have Stories**
- [x] User can Register a new Account
- [x] User can Login
- [x] The user can choose a subject to prepare.
- [ ] The user can take quizzes for a subject
- [ ] Profile


**Optional Nice-to-have Stories**

- [ ] Advanced Quiz
- [ ] Score Sharing

### 2. Screen Archetypes

* Login
   * User can login
* Register
   * User can register a new account
* Stream
    * user can see the list of exam subjects
* Choose Subject
    * User can choose a exam subject
* Quiz
    * User can answer quizzes for an exam subject
* Profile
    * User can see their progress on an exam topic

### 3. Navigation

**Tab Navigation** (Tab to Screen)

* Stream
* Profile
* Quiz

**Flow Navigation** (Screen to Screen)

* Login
   * Stream
* Register
   * Stream
* Stream
    * Detail
* Choose Subject
    * Stream
* Quiz
    * Quiz
* Profile
    * Detail

## Wireframes
<img src="https://i.imgur.com/cIVfGcF.jpg" width=600>

### [BONUS] Digital Wireframes & Mockups

### [BONUS] Interactive Prototype

## Schema 

### Models
Model: User

| Property  | Type     | Description                               		|
| --------- | -------- | ---------------------------------------------- |
| ObjectId  | String   | Unique id for User account                		|
| createdAt | Datetime | date when post is created (default field)     	|
| updatedAt | Datetime | date when post is last updated (default field)	|
| lastname  | String   | name of the user                          		|
| firstname | String   | first name of the user                    		|
| email     | String   | email of the user                         		|
| password  | String   | Password of the user                      		|

Model: Subject

| Property  | Type     | Description                           			|
| --------  | -------- | ---------------------------------------------- |
| ObjectId  | String   | Unique id for subject                 			|
| createdAt | Datetime | date when post is created (default field)     	|
| updatedAt | Datetime | date when post is last updated (default field)	|
| Name      | String   | Name of the subject                   			|
| subject   | String   | Subject 							   			| 


Model: Quiz

| Property  | Type     | Description                                    |
| --------- | -------- | ---------------------------------------------- |
| ObjectId  | String   | Unique id for Quiz                             |
| createdAt | Datetime | date when post is created (default field)      |
| updatedAt | Datetime | date when post is last updated (default field) |
| question  | String   | question about a subject                       |
| A         | String   | option answer 1                                |
| B         | String   | option answer 2                                |
| C         | String   | option answer 3                                |
| D         | String   | option answer 4                                |
| answer    | Int      | number of the Correct Answer                   |
| subject   | Pointer  | Pointer to Subject                             |

Model: Answer

| Property  | Type     | Description                          			 |
| --------  | -------- | ----------------------------------------------- |
| ObjectId  | String   | Unique id for Answer            	   			 |
| createdAt | Datetime | date when post is created (default field)     	 |
| updatedAt | Datetime | date when post is last updated (default field)  |
| quiz	    | Pointer  | Pointer to Quiz					   			 |
| user      | Pointer  | Pointer to User 					             |
| score 	| Int	   | Score for a quiz					             |

### Networking
- Login Screen
	- (Read/GET) Query logged in user object
- Profile Screen
	- Read/GET) Query that displays the profile of the user on the application.
- Sign in Screen
	- (Create/POST) Create a new user object
	- (Read/GET) Query that checks if entered email already exists in database.
- Home Screen
	- (Read/GET) Query get list Subject
- Quiz Screen
	- (Read/GET) Query get list quiz for a Subject
	- (Create/POST) Answer for a quiz 
	
## Video Walkthrough

Here's a walkthrough of implemented user stories:
	
<img src='walkthrough.gif' title='Video Walkthrough' width='' alt='Video Walkthrough' />
