redhat-beyond / shlifim Goto Github PK
View Code? Open in Web Editor NEWA forum based web application for helping students find answers to their homework and assignments.
License: MIT License
A forum based web application for helping students find answers to their homework and assignments.
License: MIT License
The base template is being extended by every template, therefore it serves for different uses and should give freedom of design and remove limitations.
Changes made:
<head>
& <body>
tagsPlease Notice - I removed the background color definition in the base,
to add background color in your feature create a <body>
tag and add a CSS class with
the wanted color.
Also, I removed the following tags:
<div class="row">
<div class="col-md-8">
They used to warp the block content and thus limited the design possibilities of each
page that extended the base. (Mostly it Interrupted the landing page from being full-screen)
if your feature was changed by this add the tags I mentioned in your template.
"Base.html" is prune to changes in the future in case of:
Adding routes to links in the navbar (replacing href=#"
)
Adding more <script>
& <link>
tags
Prettifying the navbar itself
Let me know if you have any suggestions for improvement or requests for changes.
The editor will be CKEditor.
Add the option to add up to 5 tags to a particular question
Add documentation folder which contains files that are not related to the code, but related to the project .
Create a DB for Question Tag following the table in the ERD which includes:
tag ID (PK, FK)
question ID (PK, FK)
Assigned to: @avivz450
Create a DB table for questions following the table in the ERD which includes:
Currently, we have 2 answers test data in the migrations,
and a small number of tags_questions also.
More test data is needed for logical testing purposes and for testing the look of the features
The base.html file will be inherited by all the other HTML files and will include
a Navbar with links to other pages, a search box for questions, and authentication buttons (Login/Logout and profile page).
Moreover, the base.html will have all the needed CSS links and messages logic for showing one-time messages to the user
(for example confirmation for creating a user or posting a question).
Add "Explore page" - a page that displays all the questions in the app.
User Story:
As a Shlifim user,
I want to post a query about my home work
so that other people will respond me and I will find a solution
Use case:
Add sort option to "explore page"
Enable sort questions by :
Subject, Sub subject, and book models will be added to models.py following this ERD design:
https://lucid.app/publicSegments/view/f1d0a9f5-f835-4cb8-9080-1adadcacc922/image.png
Also, create a Migration file for creating test-data
Assigned to: @liornoy
Creating Answer model tests (before Edward class).
After all the features will merge and we'll have a view.py , I will add more tests.
Add a basic 'Add a question' page.
In this issue, the page will not include style, tags, and special content editor - only the basic action of posting a question using model form.
files that need to be modified :
new files :
Update bootstrap script so it will run the data migrations when Vagrant VM starts up.
Need to do it to display certain fields within a Django form based on the data of another selected field within that same form.
For an example :
If the User chose 'Math' in the subject field, he will only see all the sub-subjects that related to math (such as 'Geomtry' and more...)
Currently, the test which tests the context response from the display question page is not good.
It uses .startswith() instead of an equal, and the test data it checks is sparse.
Now that we have more test data this test needs to be refactored.
Also, need to create a new test for testing the query param which sorts the answers.
These additions are meant to clarify the user's purpose.
Assign to @liornoy
Create a DB table for Answers following the table in the ERD which includes:
about the picture column I am not sure which type it should be (URL/File/...), relevant to Questions table to. ( @danitLevi )
I would glad to hear your opinion on this @ifireball.
As for now, we use "naive" datetime for our test data.
for example: datetime(2019, 5, 3, 9, 40, 35)
This causes Django to send warnings when using makemigrations and when using pytest.
Fix for it is adding "tzinfo=pytz.UTC".
0004_test_data_book_subsubject_subject.py file creates test data for Subject, Sub-subject, and books.
While working on creating more question test data, I encountered an error caused by
a typo (extra white space after the text) in sub_subjects_test_data:
('Geometry ', 'Math'),
...
('Thermodynamics ', 'Physics'),
...
('Roman period ', 'History'),
'landingpage' is a temporary app for holding the demo page used for the first presentation.
Now we'll replace it with a 'home' app that will contain most of the functions and logic of the 'Shlifim'.
The current "landingpage.html" page will be moved to the 'about' view and will be upgraded in the future.
The feature will allow us to comment on questions.
Tasks:
Looking at the models through the admin page, I noticed that:
There is a different page for viewing users and viewing profiles which in my opinion should be on the same page because the profile model is an extension for the user model, and has one on one relation.
In models such 'Book' 'Question', 'Sub-subject', 'Answer' the admin page is showing by default only one column of information, for example for Books it shows only the book's name, but it would be better if it showed the related subject in the same row.
Example of the Book model page on the admin page before and after the change
add logout option by Django
For each subject add a picture that will be used when presenting a question
with the subject.
The images should be in the 'static' folder inside the 'home' app.
Add more questions, and make them from different dates.
Create a DB for Tag following the table in the ERD which includes:
tag ID (PK)
tag name
Assigned to: @avivz450
Update
This feature is for the page that opens after you click certain questions on the "Explore" page.
The page will display the question, and underneath all the existing answers.
Also, if this page is opened by the user who wrote the question he will have the options to delete and edit.
Add test for navigating to not-existing question for example: explore/question_999
Add test for entering wrong query param for example: explore/question_2/?sortanswersby=cat
Create a DB for Users following the table in the ERD which includes:
Assigned to: @rebeccaTubman
add simple login page.
User Story:
As a “Shlifim” website user, I want to search or upload questions I may have from homework or assignments I have from school so that I can receive answers, summaries, or sources for my questions.
I'll know I'm done when I managed to find my answer and finish my homework or assignments.
Use Case:
A new user will sign up to the website while a registered user will log in.
Once the user is on the 'Home Page' he will be able to look through the latest questions.
He will be able to search and filter existing questions, add a new question, or add a new answer to an existing question.
For Demo 1 we will create a landing page that includes:
Add filter option to "explore page"
Enable filter questions by :
redirect login to previous page
make a PR for the installation of PyTest only ,so the team can use it for their tests.
In the home app, models.py file. the Question model, the 'book' field is set to:
book = models.ForeignKey(Book, on_delete=models.CASCADE, blank=True)
When creating a question without a book Django throws: "NOT NULL constraint failed"
should add null=true to solve this
The same goes for sub_subject field
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.