2020-03-22 19:26:54 +08:00
# About LRR
2021-10-24 13:32:03 +08:00
LRR (Lab Report Repository) is an online software application for course instructors to post, receive and mark assignments, and for students to submit assignments, or submit re-marking requests.
2020-03-22 19:26:54 +08:00
2021-10-24 13:39:00 +08:00
This software was originally developed by Mahomed Nor in 2018, a graduate student in the Department of Computer Science at the Zhejiang Normal University,
2020-03-29 16:29:56 +08:00
while he was taking a graduate course called **Advanced Software Engineering** (http://lanlab.org/course/2018f/se/homepage.html).
2021-10-24 13:39:00 +08:00
The LRR's project home page is at http://121.4.94.30/homepage/. For potential project contributors, we recommend that you browse its home page first to familiarize yourself with the project.
2020-03-22 19:26:54 +08:00
# Mission
2021-10-24 13:32:03 +08:00
Our mission is to make the experience of submitting assignments great for tens of hundreds of students in the department of computer science at the Zhejiang Normal University.
2020-03-22 19:26:54 +08:00
2020-03-31 22:00:13 +08:00
# Installation Instructions
2020-03-22 19:26:54 +08:00
2021-07-21 21:38:51 +08:00
## Hui's steps
2021-10-24 13:39:00 +08:00
I spent about two hours installing LRR to a bare, remote Ubuntu server (Ubuntu 20.04 LTS).
2021-07-21 21:38:51 +08:00
2021-07-21 21:45:23 +08:00
LRR needs Apache and MySQL to run. I followed [How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 20.04 ](https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-20-04 ) to set up these server applications.
2021-07-21 21:38:51 +08:00
2023-07-30 16:16:24 +08:00
LRR uses a database called `lrr` . So create this database using MySQL root account. Open MySQL's prompt using `sudo mysql` . Create the database using command `CREATE DATABASE lrr;` , and grant all privileges to MySQL user `lrr` using command `GRANT ALL PRIVILEGES ON lrr.* TO 'mnc'@'localhost' WITH GRANT OPTION;` . If MySQL user mnc does not exist, create it using command `CREATE USER 'mnc'@'localhost' IDENTIFIED BY 'password'` .
I need to export the existing `lrr` to a plain text file (including many sql commands) and import that text file to the newly created `lrr` database on the new server.
The command for exporting the database is `mysqldump -u mnc -p lrr > lrr_database_dump.txt` , where mnc after -u is MySQL's username, and lrr after -p is the database name.
2021-07-21 21:45:23 +08:00
The command for importing is `mysql -u mnc -p lrr < lrr_database_dump.txt` . Read [How to Import and Export MySQL Databases in Linux ](https://phoenixnap.com/kb/import-and-export-mysql-database ) for more detail.
2021-07-21 21:38:51 +08:00
2021-07-21 21:45:23 +08:00
LRR also needs to store assignment submissions. We store them in a folder called `../../lrr_submission` . Note that `lrr_submission` is two levels above the project folder (where many PHP files reside). I copied this folder from the existing one. I think it is also OK if you create an empty folder.
2021-07-21 21:38:51 +08:00
We need to set a proper owner and accessibility for `lrr_submission` using the following two commands:
2021-10-18 21:39:16 +08:00
`sudo chown -R www-data:www-data lrr_submission` and `sudo chmod -R g+rw lrr_submission` . Also, remember to change the user name and password in `lrr_submission/KeepItSafe.txt` for the database connection.
2021-07-21 21:38:51 +08:00
The above steps are preparation work. Now we could clone the LRR's repository to `/var/www/html/` .
Rename LRR to lrr. Change the owner of lrr: `sudo chown -R $USER:$USER /var/www/lrr` . Edit apache configure file: `sudo nano /etc/apache2/sites-available/lrr.conf` .
< VirtualHost * :80 >
ServerName lrr
ServerAlias www.lrr.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/lrr
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
< / VirtualHost >
Enable the site lrr: `sudo a2ensite lrr` . Restart the apache server: `sudo systemctl reload apache2` .
2021-07-21 21:45:23 +08:00
Visit the LRR application by entering this URL in a web browser: http://121.4.94.30/.
2021-07-21 21:38:51 +08:00
## Enock's steps
2021-10-24 13:39:00 +08:00
Enock, a graduate student here, has made a tutorial about how he deployed LRR to a remote server (http://lanlab.org/course/2021s/spm/PuTTY-Server.txt).
2020-03-22 19:26:54 +08:00
2020-03-31 22:00:13 +08:00
# Current Status
2020-03-22 19:26:54 +08:00
2020-03-31 22:00:13 +08:00
This software has been actively used by students who took or are
2021-10-24 13:32:03 +08:00
taking courses taught by Hui, e.g., Introduction to Software
Engineering, Introduction to Object-oriented analysis and design,
Advanced Software Engineering, Software Architecture, and Software
Project Management.
2020-03-22 19:26:54 +08:00
2021-10-24 13:32:03 +08:00
There are more than 500 student accounts created since its first
2020-03-31 22:00:13 +08:00
launch in 2018.
2020-03-22 19:26:54 +08:00
2020-03-31 22:00:13 +08:00
A running instance of this software is at http://118.25.96.118/nor/
There are about 40 bugs (most being CRITICAL) that remain unresolved
2021-10-24 13:32:03 +08:00
before LRR can hit its Beta release. See the section *The Bug
Tracker* for more detail. Currently, there are a few students who are
taking my Advanced Software Engineering course) working on these bugs.
2020-03-22 19:26:54 +08:00
# The Bug Tracker
2020-03-31 22:08:11 +08:00
We use Bugzilla to track LRR's bugs and feature requests.
2021-10-24 13:32:03 +08:00
Most bugs are [recorded on Bugzilla ](http://118.25.96.118/bugzilla/buglist.cgi?bug_status=__all__&list_id=1319&order=Importance&product=Lab%20Report%20Repository%20%28nor%20houzi%29&query_format=specific ).
2020-03-16 15:43:50 +08:00
2020-03-22 19:26:54 +08:00
2020-03-22 19:39:09 +08:00
# TODO
2020-03-22 19:26:54 +08:00
2021-10-24 13:32:03 +08:00
- [Priority low] *Receiving email for password resetting* . Password resetting link is not always sent successfully.
2020-03-22 19:26:54 +08:00
2021-10-24 13:39:00 +08:00
- [Priority medium] *Discuss how assignments should be stored?* `/student-number/course-code/semester/section-number/assignement-title/submission.txt`
2020-03-22 19:26:54 +08:00
2021-04-17 21:54:57 +08:00
- [SOLVED] Editing the assignment title after uploading a new assignment (instructor).
2020-03-22 19:26:54 +08:00
2020-03-31 22:00:13 +08:00
- [SOLVED] A new user could not login immediately after sign up.
2020-03-22 19:26:54 +08:00
2020-03-31 22:09:04 +08:00
- A more complete list of TODO's is at http://lanlab.org/course/2020s/spm/decide-areas-for-improvement-review.html
2020-03-22 19:26:54 +08:00
2020-03-31 22:00:13 +08:00
# How to Contribute
2020-03-22 19:41:55 +08:00
2020-03-31 22:00:13 +08:00
We welcome your participation in this project.
2020-03-22 19:41:55 +08:00
2020-03-31 22:00:13 +08:00
Your participation does not have to be in the form of contributing code. You could help us on
ideas, suggestions, documentation, etc.
2020-03-22 20:44:55 +08:00
2021-10-24 13:32:03 +08:00
You can fork this project and start working on your fork. After you are done, please create a pull request so that we could review your changes and give you feedback.
2020-03-22 20:44:55 +08:00
2021-10-24 13:32:03 +08:00
You will use the feature-branching workflow (see below).
The main point of this workflow is
that you work on a branch on your local drive, push that branch to a remote
repository, and create a Pull Request (i.e., Pull Me Request) at
for other people to review your changes. If everything is
2020-03-31 22:11:13 +08:00
OK, then *someone* could merge your changes to the master branch in the
2021-10-24 13:32:03 +08:00
central repository.
2020-03-22 20:53:11 +08:00
2020-03-31 22:11:13 +08:00
I believe that *code review* at the Pull Request stage is important
for both improving code quality and improving team quality.
2020-03-31 22:00:13 +08:00
## The Feature-branching Workflow
We will use the feature-branching workflow for collaboration. The
2020-03-31 22:11:54 +08:00
idea is that you make your own branch, work on it, and push this branch to
2021-10-24 13:32:03 +08:00
the remote, online repository for code review.
2020-03-31 22:00:13 +08:00
Check the section **The feature-branching workflow** in the following link for more detail:
2020-03-22 20:44:55 +08:00
https://github.com/spm2020spring/TeamCollaborationTutorial/blob/master/team.rst
2021-10-24 13:32:03 +08:00
## Testing
2020-03-31 22:05:23 +08:00
2021-10-24 13:35:03 +08:00
Make sure your changes can pass all the tests in folder [./test ](http://121.4.94.30:3000/mrlan/LRR/src/branch/master/test ).
2020-03-31 22:05:23 +08:00
2021-10-24 13:32:03 +08:00
## Communications Method
2020-03-31 22:05:23 +08:00
2021-10-24 13:32:03 +08:00
To submit bug reports or improvement ideas, please contact Hui [lanhui at zjnu.edu.cn]. He could open a Bugzilla account for you.
2020-03-31 22:05:23 +08:00
2021-10-24 13:39:00 +08:00
We can also communicate through pull requests. You make a pull request, I review it and comment on it, and you revise your pull request until everyone is happy so that your changes get merged to the master branch.
2020-03-31 22:05:23 +08:00
2020-03-31 22:00:13 +08:00
## Frequently Asked Questions
2021-07-21 21:55:04 +08:00
2021-10-24 13:32:03 +08:00
1. Q: The web application's front page does not show properly, i.e., elements are not well aligned.
2021-07-21 21:58:19 +08:00
A: You missed two folders `css` and `font-awesome` . These folders include third-party js or css files and therefore are not included.
2021-07-21 21:55:04 +08:00
2021-07-21 21:58:19 +08:00
1. Q: What if I do not have any information about the `lrr` database?
2021-10-24 13:32:03 +08:00
A: You could use `lrr_database.sql` to make a new database.
2020-03-31 22:00:13 +08:00
2021-10-24 13:45:31 +08:00
# Related GitHub Repositories
2020-03-31 22:00:13 +08:00
2021-10-24 13:45:31 +08:00
- The original repository: https://github.com/EngMohamedNor/LabReportRepo
- The Lan Laboratory repository: https://github.com/lanlab-org/LRR
2021-10-26 12:45:42 +08:00
- Zhan Shenchen repository: https://github.com/SawiMg/Seleium
2021-10-24 13:45:31 +08:00
2021-10-25 09:08:08 +08:00
- Ibrahim repository: https://github.com/hema-001/LRR
2020-03-31 22:00:13 +08:00
2020-03-22 20:44:55 +08:00
2020-03-22 20:33:19 +08:00
# Contributor List
2020-03-22 19:41:55 +08:00
2021-04-17 14:31:43 +08:00
*Important contributors are highlighted.*
2020-03-31 22:01:20 +08:00
2021-04-17 14:31:43 +08:00
GitHub Account - Full Name - Student number
2020-03-22 19:41:55 +08:00
2022-06-17 23:19:00 +08:00
CODEwithZAKI - Omar Mohamud Mohamed - 2020041
2020-12-15 10:30:00 +08:00
2022-06-17 23:19:00 +08:00
BloudYoussef - Khayat Youssef - 2020042
2020-12-15 10:30:00 +08:00
2022-06-17 23:19:00 +08:00
TanakaMichelle - Tanaka Michelle Sandati - 2017134
2020-03-30 12:29:14 +08:00
2022-06-17 23:19:00 +08:00
WhyteAsamoah - Yeboah Martha Asamoah - 2017135
2020-03-22 19:41:55 +08:00
2022-06-17 23:19:00 +08:00
xiaoyusoil - ZhengXiaoyu - 2017110
2020-04-07 01:17:18 +08:00
2022-06-17 23:19:00 +08:00
Benny123-cell - ZhangBin - 2017127
2020-04-07 01:17:18 +08:00
2022-06-17 23:19:00 +08:00
421281726 - LiJiaxing - 2017118
2020-04-07 01:17:18 +08:00
2022-06-17 23:19:00 +08:00
zhenghongyu-david - ZhengHongyu - 2017128
2020-04-07 01:17:18 +08:00
2022-06-17 23:19:00 +08:00
wkytz - YeHantao - 2017125
2020-04-07 01:17:18 +08:00
2022-06-17 23:19:00 +08:00
zego000 - GaoZeng - 2017117
2020-04-07 01:17:18 +08:00
2022-06-17 23:19:00 +08:00
Richard1427 - XieJiacong - 2017123
2020-04-07 01:17:18 +08:00
2022-06-17 23:19:00 +08:00
yutengYing - YingYuteng - 2017126
2020-04-07 01:17:18 +08:00
2022-06-17 23:19:00 +08:00
Samrusike - Samantha Rusike - 2016140
2020-04-09 13:07:55 +08:00
2021-04-17 14:31:43 +08:00
*enockkays* < enockkhondowe94 @ yahoo . com >
2022-06-17 23:19:00 +08:00
*Teecloudy* - Ashly Tafadzwa Dhani - 201150
2020-04-07 01:19:48 +08:00
2022-06-17 23:19:00 +08:00
GuedaliaBonheurSPM - Guedalia Youma - 2019221
2020-04-09 13:07:55 +08:00
2022-06-17 23:19:00 +08:00
ACorneille - Alimasi Corneille - 2019168
2020-04-09 13:07:55 +08:00
2022-06-17 23:19:00 +08:00
Tabithakipanga - Kipanga Dorcas - 2019170
2020-04-26 16:53:19 +08:00
2022-06-17 23:19:00 +08:00
Mary-AK - Mary Akussah Doe - 2019173
2020-04-26 16:53:19 +08:00
2022-06-17 23:19:00 +08:00
pkkumson - Kumson Princewill Kum - 2019166
2020-04-27 14:07:36 +08:00
2022-06-17 23:19:00 +08:00
Twizere - Twizere Pacifique - 2019174
2020-04-27 14:07:36 +08:00
2022-06-17 23:19:00 +08:00
Nicole-Rutagengwa - Nicole Rutagengwa - 2019169
2021-04-17 14:31:43 +08:00
2021-10-25 09:08:08 +08:00
*hema-001* - Ibrahim Mohamed Ibrahim Ismail - omitted
2021-10-24 10:53:00 +08:00
*SawiMg* - Zhan Shenchen - omitted
# References
- 詹沈晨. (2020). [网页程序测试自动化 (Selenium) 测试效率 ](http://lanlab.org/ZhanShenchen-On-Automated-Web-Application-Test-Efficiency-with-Selenium.doc )
2021-10-24 13:45:31 +08:00
- Ibrahim. (2021). [Defect analysis for LRR ](http://lanlab.org/thesis/Defect-Analysis-for-LRR.docx )