coursemology / coursemology2 Goto Github PK
View Code? Open in Web Editor NEWRails 6 re-write of Coursemology
Home Page: https://coursemology.org
License: MIT License
Rails 6 re-write of Coursemology
Home Page: https://coursemology.org
License: MIT License
Top 10 slowest examples (43.54 seconds, 36.3% of total time):
Announcement pagination with tenant :instance after clicked second page lists each announcement
5.8 seconds ./spec/features/course/announcement_pagination_spec.rb:30
Announcement pagination with tenant :instance lists each announcement
5.56 seconds ./spec/features/course/announcement_pagination_spec.rb:20
System announcement pagination after clicked second page lists each announcement
4.79 seconds ./spec/features/admin/system_announcement_pagination_spec.rb:28
Instance announcement pagination with tenant :instance after clicked second page lists each announcement
4.64 seconds ./spec/features/admin/announcement_pagination_spec.rb:30
Instance announcement pagination with tenant :instance lists each announcement
4.56 seconds ./spec/features/admin/announcement_pagination_spec.rb:20
System announcement pagination lists each announcement
4.56 seconds ./spec/features/admin/system_announcement_pagination_spec.rb:18
Course management with tenant :instance course creation with valid information creates a course
3.64 seconds ./spec/features/course_management_spec.rb:31
Announcement pagination with tenant :instance should have css "nav.pagination"
3.62 seconds ./spec/features/course/announcement_pagination_spec.rb:18
Instance management index page shows all instances
3.44 seconds ./spec/features/admin/instance_management_spec.rb:79
Announcements read/unread status management with tenant :instance visit announcement index page after visiting marks announcements in page 2 as read
2.93 seconds ./spec/features/course/unread_status_management_spec.rb:33
Top 10 slowest example groups:
Announcement pagination
4.99 seconds average (14.98 seconds / 3 examples) ./spec/features/course/announcement_pagination_spec.rb:3
Instance announcement pagination
4 seconds average (12.01 seconds / 3 examples) ./spec/features/admin/announcement_pagination_spec.rb:3
System announcement pagination
3.99 seconds average (11.97 seconds / 3 examples) ./spec/features/admin/system_announcement_pagination_spec.rb:3
Announcements read/unread status management
1.93 seconds average (5.79 seconds / 3 examples) ./spec/features/course/unread_status_management_spec.rb:3
ImageUploader
1.46 seconds average (4.39 seconds / 3 examples) ./spec/uploaders/image_uploader_spec.rb:4
I18n
1.11 seconds average (2.21 seconds / 2 examples) ./spec/i18n_spec.rb:3
Instance management
1.08 seconds average (8.66 seconds / 8 examples) ./spec/features/admin/instance_management_spec.rb:3
Course management
1.05 seconds average (4.19 seconds / 4 examples) ./spec/features/course_management_spec.rb:3
Achievement listing
0.91227 seconds average (2.74 seconds / 3 examples) ./spec/features/course/achievement_listing_spec.rb:3
Announcement sticky
0.59007 seconds average (0.59007 seconds / 1 example) ./spec/features/course/announcement_sticky_spec.rb:3
311 examples, 2 failures, 308 passed, 1 pending
Probably the specs need to be rewritten as user stories instead.
Leading to spec failure. To reproduce: just run specs locally on your computer a few times, the IDs of the new records would be paginated and not found on the first page.
Student’s Summary page should allow staff to access all possible features and information pertaining to the student. e.g. a list of missions and trainings that the student has completed/attempting and clicking on the link will directly bring you to the submission.
Currently (v1) the summary page has quite useless information.
Suggested by Wai Kay
...They seem to be similar.
One use case for short-lived missions is for practical examinations. The mission is published for the duration of the exam.
v1 sends reminder emails even for assessments which are unpublished. This causes confusion to the students who can't see the test yet but are getting reminders to finish it.
This can be solved by also checking the if an assessment is published when deciding if a reminder should be sent.
To be organised by purpose as well.
A watchlist for weak students would be very helpful for the teaching staff.
Staff should be able to add students onto the watchlist and then add comments to monitor the student's progress.
This is currently tracked separately but will be useful when integrated into Coursemology.
After #204 have been merged.
Need do this for all the exiting announcements modules.
Mission attempts should be tracked, just like what is currently done for trainings.
Suggested by Wai Kay.
Now every time we run 'bundle exec rspec', there will be a set of new records of each factory inserted to the test db.
e.g.. if we run Rspec for 10 times, we will have 10 records of users, instances, etc. left in the db. As far as I know, this is caused by FactoryGirl.lint
The stuff in controllers/modules
are actually components of Coursemology instead of Ruby modules. Rename them all so it's less confusing.
Some missions are based on file submissions. Students may submit files in various formats like Excel or Word. Graders may want to provide feedback and corrections directly in the files and send it back to the students.
This could be implemented by allowing file uploads in comments. Doing it this way means no special effort is required once the general feature of allowing file uploads in comments is implemented.
Include an option to hide some files in the workbin.
Suggested by Ben
For symmetry with current_user
. Remove all references to @course
No route matches [GET] "/announcements"
Suggested by Wai Kay.
Is this already implemented in v1?
Now our survey summary is grouped by question.
It would be nice to have a "group by responders" option, so that user can see each individual's respond (in case there are dependencies among questions).
Lastest rubocop prefers Time.zone.now
over Time.now
link_to
with any HTTP verb other than GET requires rails-ujs.
This is open for discussion, and would affect the architecture of the new Assessments module.
We should not put everything inside one ability file
I still got this error default': Unknown instance. Did you run rake db:seed? (RuntimeError)
Even we have configured RSpec like below:
config.before(:suite) do
Application.load_tasks
Rake::Task['db:seed'].invoke
end
Achievements and experience levels are automatically added when answers are submitted. Sometimes, the staff may unsubmit a student's work.
When this is done, related achievements and experience gains should be undone.
Less verbose.
Too many individual assertions which are repeatedly asking for the same URL.
Should help with #225.
Double Submit Protection has a simple way of doing so (we should use metaprogramming to make this transparent, like CSRF protection)
I think disabling buttons with 'please wait' is hacky.
We cannot click the sidebar to access the components now, all the hrefs are '#'
Pointed out in #78
Following #212.
Both contest and normal surveys should allow optional questions.
rake db:schema:load
complains about missing relations. However, rake db:setup
works fine.
@allenwq suspects that the issue might be due to the schema_plus gem
Use current_course
instead.
Good for caching!
See app/controllers/admin/announcements_controller.rb
We will probably need
valid_in_future
or furture?
and
future_class
to handle css class
Pointed out in #85
Missions are used for more formal testing. After the test, there is educational value in allowing students to see all the test cases and try to improve their code.
By allowing missions to be duplicated as trainings with all the test cases public, students can still use the auto grader to verify that their improved solutions are correct.
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.