Building this app one step at a time.
- Filled-out planning document
- Define first communication plan.
- Set up the starter project.
- Identify the main repository owner.
- Add each other as collaborators.
- Set up the project board.
- Fork the organized-for-deployment.
- Make a search about app and think on the samples.
- Define user stories.
- Write a first-draft development strategy.
- Deploy the starter code.
- Update
readme.md
- Begin planning the data tables for the application.
- Update existing files according to requirements.
- Create issues, assign issues, create milestones and labels.
- Begin wireframing
A user can overview a sample tutorial, and can see overview of the page
*** This user story can be divided into pieces as Header, Main Section Footer or Contact page, About page...
labels: init
, view
, style
, frontend
FRONTEND
-
Create
init.js
to declare home page for initialization. -
Render UI. Create/work on
view.js
, create/work on a class namedUI
, create/work onrender
method and use it for rendering/initializing. -
Create
style.css
, use bootstrap. (this section will be updated) -
Home page needs
- Responsive website
Header
- Create collapse navigation bar (
links
to other pages,sign up
,sign in buttons
,tutorials
,practice-test
,browse-tests
,profile
,free sample test
,our logo
)
Main Section
- Create a
video
tag . App tutorial (short , and it starts automatically when the page loaded) - Create some
cards
for example for the tests; animg
tag, shortcomment
<p>
below it when click the photo then it goes to the test page. Animg
tag, shortcomment
<p>
below it when click the photo then it goes to the practical information page.
Footer
Copyright
,Contact
information...
A user can sign up / register online (self-registration).
in the register part we ask the user : - name and surname - mail - country - city - age - create password - secret question and answer to reset his password. - ...
labels: frontend
, view
, style
, backend
, route
FRONTEND
- Create an interface for user to sign up.
- Create
label
,input
for- name
- surname
- country
- city
- age
- password
- secret question
- answer to reset his password.
- Create
- Render UI. When user clicks
sign up button
it will berender
ed. Create/work onview.js
, create/work on a class namedUI
, create/work onrender
method.
BACKEND
- Access to
db
... Write new user todb
. - Build
route
. Send confirmation/errorresponse
(Successfully signed up
). - Open
home page with message = Welcome "new user"
.
A user can login by using username and password.
labels: frontend
, view
, style
, backend
, route
FRONTEND
- Create an interface for user to login.
- Render UI. When user clicks
login button
it will berender
ed. Create/work onview.js
, create/work on a class namedUI
, create/work onrender
method. User name
div
text
will be changed asuserName
.
BACKEND
- Access to
db
... Check the user if exists or not.- If the
backend route
verifies users authentication, user will be directed to homepage. - If the
backend route
doesn’t accept users authentication, an error message will be shown and request re-entry.
- If the
- Write table user as online.
- Build
route
. Sendconfirmation
orerror
response
(Successfully signed in
).
A user can logout.
labels: frontend
, view
, style
, backend
, route
FRONTEND
- Render UI. When user clicks
logout button
it will berender
ed. Create/work onview.js
, create/work on a class namedUI
, create/work onrender
method. User name
div
text
will be changed asblank('')
.
BACKEND
- Access to
db
... Check the user if exists or not. - Write table user as offline.
- Build
route
. Send confirmation/errorresponse
.
-
A user can recover/reset his/her password by clicking forget password link.
-
Create an interface (
frontend
) asks user for email address, -
if email address exists (
backend
), -
ask in a new interface security question (
frontend
) -
is answer is correct (
backend
) -
ask for new password (
frontend
) -
reset it (
frontend
) -
and go to home page.
- As an registered user can see a page specialized for him after logged in and then clicked his name.
Create links for reading materials. Create links for tests. Create link for results.
Ideas about what the page should have..
- user can enroll for test
- user can take exam
- user can see his correct and incorrect answers.
- user can write comment/questions/feedback
- user can view test result
- update profile(optional)
- user can logged out
-
As an teacher user can see a page specialized for him.
- As an registered teacher can grant user to take re-exam - For uploading if teachers give an excel | comment | question | answer | photo link | | --- | --- | --- | --- | | You are in a car... | You are in a car. | True | www.dropbox.com/asd/ad.img | | You are in a car... | You should close your eyes. | False | www.dropbox.com/asd/ad.img | - we can convert excel in a json and then upload the questions easily. So we only need upload excel document `UI`, and `convert it to JSON logic`. when user sends that `request to backend`, it will `write` to `db`.
FRONTEND
- There is a
modify sources(tests and tutorial)
button , when he clicks, it goes to the another page.- Create 2
buttons
forsources
andtests
. sources
button forsources page
. All the materials will shown here, Create anadd
button to add new material.- when he clicks the
add
button it opensform
for uploading. in theform
there will bebox?
for uploading pictures or videos andtext area
for text information andinput
for heading. - Bottom of each material(video or text) there will be
delete
button andchange
button. - when
delete
button clicked then first ask thatare you sure to delete this part?
(for materials) - When
tests
clicked he goes to the tests page. there he can see all the tests and andadd
button to add new question. - when he click the
add
button then it opens aform
. in theform
tag there isbox?
for picture uploading, there areinput
s for subquestions and answers. - Bottom of each test there will be
delete
button andchange
button. - when
delete
button clicked then first ask thatare you sure to delete this part?
(for tests)
- Create 2
- There is a
statistics
button. when he clicks the button , user sees the statistics. (how many students are enrolled for the course, test success of students , in which courses students have difficulties,... )
BACKEND
- when the user
clicked
theadd
button in the sources, runadd.js
, go todb
and add the uploaded file to the folder.(for materials) - when the user
clicked
theadd
button in the sources, runadd.js
, go todb
and add the uploaded file to the folder.(for tests) - Run
delete.js
and access todb
and delete that part.(for materials) - Run
delete.js
and access todb
and delete that part.(for tests) - when the user clicked the
change
button then runchange.js
and access todb
and change that part.(for materials) - when the user clicked the
change
button then runchange.js
and access todb
and change that part. (for tests) - when the user click the
statistics
button it gets necessary information fromtest
page.
-
A registered user with teacher role can add practice test questions and tutorials.
-
This is detailed in
Teacher Page
-
A registered user with teacher role can add practice test questions and tutorials.
-
This is detailed in
Teacher Page
-
A registered user with teacher role can add practice test questions and tutorials.
-
This is detailed in
Teacher Page
- As an registered user can reach tests list with results.
- A user can see his total time 20 minutes for 20 questions X 4 sub-questions = 80 questions.
- A user can take re-exam(re-test).
- A user can go back and next question. (in real test it can't be so no need)
- if a user don't finish the test and later he wants to solve remaining questions, the test will continue where he stopt. (what is about time??? is it freezes?)
FRONTEND
- create a table with one column titles (links) shown in rows for all the tests, one column result.
- Render UI. Create
Test
folder. Create/work onview.js
, create/work on a class namedUI
, create/work onrender
method and use it for rendering/initializing. - Create
style.css
, use bootstrap. - It will be responsive.
BACKEND
- Read Test names from
Test Table
. and send them as a respond. (x)
- As an registered user can take a test.
FRONTEND
- A button when it is clicked to see all the tests with its title and pictures.
- A button when it is clicked to see his test results for any test separately.
- A button for next question.
- A button for back question.
- In test page there will be a picture of question, sound of question and 4 different sub-questions are related with this question.
- A button for sound of question description.
- 4 buttons for each sub-question sound.
- For each sub-question there will be yes and no checkboxes.
- A button to see his results.
- A button when it is clicked he can do test again.
- An icon to see the time.
BACKEND Initialization
-
Create one method/function to read from db on
situation
tabletext
,image
,audio
columns test-related situation. and onquestion
tabletext
,audio
columns situation-related question.After click
End My Test
-
Create one method/function to read from db on
situation
tableimage
columns test-related situation. and onoption
tablecorrectOption
columns question-related option to make see which questions are correct which are wrong. -
Create one method/function to write to db on
result
tablecorrectCount
columns which relates chosen test.
- A registered user can reach his results/scores.
Ideas about what the page should have..
- as a user he can see the the solution/corrections at the end of each test.
- as a user if he click any test in the
results
page , he can see the result of his test. - as an teacher he can see the average of the student success in the teacher page.(optional)
- as an teacher he can see the total number of the students in the teacher page.(optional)
FRONTEND
- there are
img
tags for each test. if user is successful in that course image has agreen
border. otherwise it has ared
border. - at the bottom of each
img
there are 3text
areas,correct answer
,incorrect answer
,total question
- each
img
has a link for the result of that test. when user click the test then user see the correct answers of the questions.- there are
img
tags for each question. if it is correct answered then the image has agreen
border otherwise it has ared
border. - at the bottom of the image there will be sub-questions with the correct answers.
- there are
BACKEND
- to show the correct answer amount for each test, it
render
his answers with the correct answers and save this statistics tostatics
table ondb
. (x) - it gets the correct answers , user's answers , questions from
db
when the pageloaded
.(x) - after rendering all user answers , we compute average success of any test and save it in
db
. (optional) - ...
-
A registered user can add comment and see all the comments.
-
A registered user with teacher role can reply to comment/feedbacks.
-
Create a section for writing (
frontend
) comment -
Create a button to send comment (
frontend
) it. -
Comment text will saved in
Comment table
withuser id
,test name
,date and time
.Ideas about what the page should have..
-
A registered user can see tutorials.
-
Create like youtube's videos page that lists all of the videos or page by page.
- Be sure all app sections works properly. Making sure your deployed app works for the live demo.
- Deploy app to make it online and accessible for the users. Use
Heroku
or another method.
- Complete readme.md for more details about the app.
Ideas about what the page should have..
- Contributions,
- All the contact infos about team members.
- ! This section can be updated always to make a perfect readme.
- Preparing a presentation where everyone in the team will speak.
- A short video add for the project.