diff --git a/homepage/DevelopmentPlan.html b/homepage/DevelopmentPlan.html new file mode 100644 index 0000000..74f85cf --- /dev/null +++ b/homepage/DevelopmentPlan.html @@ -0,0 +1,131 @@ + + + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+ + + +
+
+ +

Development Plan

+ + The project is under active development and there are new features planned as well as some known issues in the current version + +
+ + Planned Features +
+
    +
  1. Implemeting local mail sender instead of depending external APIs
  2. +
  3. Ability to upload new student information from excel sheet by administration
  4. +
  5. Notify students via email when assignments graded by the lecturer
  6. + +
+ +
Known issues +
+
    +
  1. System could not send password reset links to school email accounts (@zjnu.edu.cn)
  2. +
  3. Submission date's seconds field is always shown as 00
  4. +
  5. Text in each marked submission is not selectable
  6. +
  7. Feedback does not show properly in a student's account
  8. +
  9. Better directory structure is needed when storing students' assignments. (The current directory structure may cause overwriting files with same name.)
  10. +
+ + + + +
+ + + +
+
+ + + + + + + + + diff --git a/homepage/Overview.html b/homepage/Overview.html new file mode 100644 index 0000000..2312fb3 --- /dev/null +++ b/homepage/Overview.html @@ -0,0 +1,134 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ + + +
+
+ +
+ + + +
+
+

Overview

+ + + LRRS is an open-source lab report management software for college students. + + +
+ The lab report repository system is developing for general purpose and used to replace old + paperwork and email based systems . This system increases the efficiency of lab report + submission and result reporting for both lecturers and students. +

+ + + The Project was developed at ZJNU by Mohamed nor and El-mahdi houzi. + + The project was tested by some undergraduates classes at ZJNU. +
The system is developed using client/server architecture and its compatible with both Linux and Microsoft Windows Operating Systems. The system was developed using PHP Scripting language and MySQL as database management system. + + + +
The LRRS project have seen incredible improvements since it's development earlier 2019. + The software includes a lot of features that simplify assignment submission and grading. + + + we invite you to participate in the development of LRRS. + + + + For helpful hints about how to get the most out of this project, see Quick Start. + + +
+ + + +
+ + + + + + + + + + + diff --git a/homepage/UseCase.jpg b/homepage/UseCase.jpg new file mode 100644 index 0000000..27b700b Binary files /dev/null and b/homepage/UseCase.jpg differ diff --git a/homepage/contact.html b/homepage/contact.html new file mode 100644 index 0000000..6a9b4a1 --- /dev/null +++ b/homepage/contact.html @@ -0,0 +1,121 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+ + + +
+
+ +

Contact Us

+ + For any suggestions, questions and enquiries about this project, please feel free to contact us on the follwing mailing adressses. + +

+ + + + + + + + +
Mohamed Nor     engmohamednor@gmail.com, or mohamednor@qq.com
Elmahdi Houzi     elmahdihouzi@gmail.com, or elmahdihouzi@qq.com
+ + + + + + +
+ + + +
+
+ + + + + + + + + diff --git a/homepage/features.html b/homepage/features.html new file mode 100644 index 0000000..5324e87 --- /dev/null +++ b/homepage/features.html @@ -0,0 +1,272 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+ + + +
+
+ +

System Features

+ + The following table shows a list of features that LRRS support + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
No Feature Description User Role
1 Create lecturer/TA accounts To create lecturers and Teaching Assistants (TA) Administrators
2 Students registration Students can register +with their passport number & student id. Student registration consists of two steps. Step 1: the student identity is checked in the database. Step 2: if found, the system allows the student to create his/her account with email and password. Students
3 Login Entry of only authorized +users through valid +login email or student id +and password All except Visitors
4 Password Reset To reset lost password by sending a link to the user's sign-up email address All except Visitors
5 Create courses Create Course Portals Administrators/Lecturers
6 Join course Students can enroll in course portals. Students
7 Student groups Create course groups for group assignments Students
8 Accept students To accept students joining a specific course +. The +member acceptance step can be disabled in the course portal setting by the lecturer. + Lecturers / TAs
9 Post lab report To post a new lab report and assign a deadline for it. Lecturers
10 Update deadline To update deadline for specific students(e.g sick students) or for all +students. Lecturers
11 Lab report submission Student can submit his/her lab report individually or for his +group Students
12 Lab report result posting To post lab results for students Lecturer & TAs
13 View Assignment grading To view assignment grading posted by lecturer Students
14 Request remarking To request submission remarking from the lecturer Students
15 Visitor portal Visitors can see public lab reports without authentication. Visitors
+ + + + + +
+ + + +
+
+ + + + + + + + + + diff --git a/homepage/img/blue-gradient.png b/homepage/img/blue-gradient.png new file mode 100644 index 0000000..eb1d24d Binary files /dev/null and b/homepage/img/blue-gradient.png differ diff --git a/homepage/img/blue-gradientx.png b/homepage/img/blue-gradientx.png new file mode 100644 index 0000000..9d84fb1 Binary files /dev/null and b/homepage/img/blue-gradientx.png differ diff --git a/homepage/img/body-top.png b/homepage/img/body-top.png new file mode 100644 index 0000000..b744a85 Binary files /dev/null and b/homepage/img/body-top.png differ diff --git a/homepage/img/tab-separatorx.png b/homepage/img/tab-separatorx.png new file mode 100644 index 0000000..29f47c8 Binary files /dev/null and b/homepage/img/tab-separatorx.png differ diff --git a/homepage/index.html b/homepage/index.html new file mode 100644 index 0000000..e9dadbe --- /dev/null +++ b/homepage/index.html @@ -0,0 +1,119 @@ + + + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+ + + +
+
+ + +
+
Welcome to our Lab Report Repository Software (LRRS) project home page.
+ LRRS is an open source lab report management software for college students. The project is released under MIT License. +
+ + +
+ + + + + + +
+ + + +
+
+ + + + + + + + + + diff --git a/homepage/installation.html b/homepage/installation.html new file mode 100644 index 0000000..e5f811f --- /dev/null +++ b/homepage/installation.html @@ -0,0 +1,147 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+ + + +
+
+ +

Installation Guide

+ + + The following steps can help you install LRRS on your local machine or an online server: + +
+ + 1. Install Web server
+ You need web server to run this web application. you can use any webserver that can run PHP Scripts. some good web servers include APACHE web server , XAMPP and easy PHP Server. + +
+ + 2. Install php 7 or later in your server (you can skip this step if you have php installed in your server) + +
+ + 3. Install MYSQL in your machine + +
+ + 4. Install Database Management tool to easily manage MYSQL databases. PhpMyAdmin is good example. + + +
+ + 5. Import LRRS database into your MYSQL Database Server using LRRS.sql Sql Script. +
+ 6. Extract LRRS_Code.zip file in the root directory of your WebServer. +
+ 7. Now you can Test the System using your browser
+ for local host installation ,the URL could be something like (http://localhost/lrr/) +
+ The initial database includes one admin user with the following credentials : +
email : admin@admin.com
+ Password : admin@admin.com +
+ + + + + + + + + +
+ + + +
+
+ + + + + + + + + + diff --git a/homepage/issues.html b/homepage/issues.html new file mode 100644 index 0000000..0ac5de9 --- /dev/null +++ b/homepage/issues.html @@ -0,0 +1,110 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+ + + +
+
+ +

Report Issues

+ +

For any suggestions or issues, please email us at mohamednor@qq.com

+ +

Bug Tracking

+ +

We also use bugzilla for tracking bugs.

+

Report bugs to bugzilla

. + + +
+ + + +
+
+ + + + + + + + + diff --git a/homepage/license.html b/homepage/license.html new file mode 100644 index 0000000..9a14a2f --- /dev/null +++ b/homepage/license.html @@ -0,0 +1,133 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ + + +
+
+ +
+ + + +
+
+ +

License

+ MIT License + +
+Copyright (c) 2019 Mohamed Nor and Elmahdi Houzi + +
+Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +

+The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +

+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + + + +
+ + + +
+ + + + + + + + + + + diff --git a/homepage/logo_text.png b/homepage/logo_text.png new file mode 100644 index 0000000..c46f99a Binary files /dev/null and b/homepage/logo_text.png differ diff --git a/homepage/lrr_datbase.sql b/homepage/lrr_datbase.sql new file mode 100644 index 0000000..f07ea4f --- /dev/null +++ b/homepage/lrr_datbase.sql @@ -0,0 +1,383 @@ +-- phpMyAdmin SQL Dump +-- version 4.7.0 +-- https://www.phpmyadmin.net/ +-- +-- Host: 127.0.0.1 +-- Generation Time: Jan 21, 2019 at 05:08 AM +-- Server version: 5.7.17 +-- PHP Version: 7.1.3 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `lrr` +-- + +DELIMITER $$ +-- +-- Procedures +-- +CREATE DEFINER=`root`@`localhost` PROCEDURE `count_submissions` (OUT `s_count` DECIMAL) BEGIN + select count(Student_id) into s_count from lab_report_submissions; + +END$$ + +CREATE DEFINER=`root`@`localhost` PROCEDURE `GetAllListings` () BEGIN + SELECT nid, type, title FROM node where type = 'lms_listing' order by nid desc; +END$$ + +DELIMITER ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `courses_table` +-- + +CREATE TABLE `courses_table` ( + `Course_ID` int(11) NOT NULL, + `Course_Name` varchar(50) CHARACTER SET utf8 NOT NULL, + `Academic_Year` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL, + `Faculty` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL, + `Lecturer_User_ID` int(11) DEFAULT NULL, + `TA_User_ID` int(11) DEFAULT NULL, + `Course_Code` varchar(100) COLLATE utf8mb4_bin NOT NULL, + `URL` varchar(100) COLLATE utf8mb4_bin NOT NULL, + `Verify_New_Members` varchar(10) COLLATE utf8mb4_bin NOT NULL DEFAULT 'No' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- +-- Dumping data for table `courses_table` +-- + +INSERT INTO `courses_table` (`Course_ID`, `Course_Name`, `Academic_Year`, `Faculty`, `Lecturer_User_ID`, `TA_User_ID`, `Course_Code`, `URL`, `Verify_New_Members`) VALUES +(10, 'Software Engineering', '2018', 'Computing', 8, 0, 'CSC1234', 'CSC12342018', '1'), +(11, 'Project Management', '2019', 'Computing', 8, 0, 'P.M2019', 'P.M20192019', '0'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `course_groups_table` +-- + +CREATE TABLE `course_groups_table` ( + `Course_Group_id` int(11) NOT NULL, + `Group_Name` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL, + `Group_Leader` varchar(100) COLLATE utf8mb4_bin DEFAULT NULL, + `Course_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- +-- Dumping data for table `course_groups_table` +-- + +INSERT INTO `course_groups_table` (`Course_Group_id`, `Group_Name`, `Group_Leader`, `Course_id`) VALUES +(1, 'Group 1', '201825800050', 10); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `course_group_members_table` +-- + +CREATE TABLE `course_group_members_table` ( + `ID` int(11) NOT NULL, + `Course_Group_id` int(11) DEFAULT NULL, + `Student_ID` varchar(100) COLLATE utf8mb4_bin DEFAULT NULL, + `Status` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- +-- Dumping data for table `course_group_members_table` +-- + +INSERT INTO `course_group_members_table` (`ID`, `Course_Group_id`, `Student_ID`, `Status`) VALUES +(1, 1, '201825800050', 'Created'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `course_students_table` +-- + +CREATE TABLE `course_students_table` ( + `Course_ID` int(11) NOT NULL, + `Student_ID` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL, + `ID` int(11) NOT NULL, + `Status` varchar(100) COLLATE utf8mb4_bin NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- +-- Dumping data for table `course_students_table` +-- + +INSERT INTO `course_students_table` (`Course_ID`, `Student_ID`, `ID`, `Status`) VALUES +(9, '201825800050', 12, 'Joined'), +(10, '201825800050', 13, 'Joined'), +(10, '201825800054', 14, 'Joined'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `course_ta` +-- + +CREATE TABLE `course_ta` ( + `Course_ID` int(11) NOT NULL, + `TA` int(11) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- +-- Dumping data for table `course_ta` +-- + +INSERT INTO `course_ta` (`Course_ID`, `TA`) VALUES +(10, 11), +(10, 10), +(11, 10); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `extended_deadlines_table` +-- + +CREATE TABLE `extended_deadlines_table` ( + `ID` int(11) NOT NULL, + `Student_ID` varchar(100) COLLATE utf8mb4_bin DEFAULT NULL, + `Lab_Report_ID` int(11) DEFAULT NULL, + `Extended_Deadline_Date` date DEFAULT NULL, + `ReasonsForExtension` longtext COLLATE utf8mb4_bin +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `lab_reports_table` +-- + +CREATE TABLE `lab_reports_table` ( + `Lab_Report_ID` int(11) NOT NULL, + `Course_ID` int(11) DEFAULT NULL, + `Posted_Date` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL, + `Deadline` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL, + `Instructions` longtext COLLATE utf8mb4_bin, + `Title` longtext COLLATE utf8mb4_bin, + `Attachment_link_1` longtext COLLATE utf8mb4_bin, + `Attachment_link_2` longtext COLLATE utf8mb4_bin, + `Attachment_link_3` longtext COLLATE utf8mb4_bin, + `Attachment_link_4` longtext COLLATE utf8mb4_bin, + `Marks` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL, + `Type` varchar(30) COLLATE utf8mb4_bin NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- +-- Dumping data for table `lab_reports_table` +-- + +INSERT INTO `lab_reports_table` (`Lab_Report_ID`, `Course_ID`, `Posted_Date`, `Deadline`, `Instructions`, `Title`, `Attachment_link_1`, `Attachment_link_2`, `Attachment_link_3`, `Attachment_link_4`, `Marks`, `Type`) VALUES +(1, 10, '2019-01-11 16:52', '2019-02-11 17:00', 'Description of the lab....', 'Reading 1', '700IMPORTANT WORDS.txt', '', '', '', '4', 'Individual'), +(2, 10, '2019-01-17 11:12', '2019-01-25 23:59', 'Read this paper http://sunnyday.mit.edu/16.355/budgen-david.pdf', 'Reading 2', '586LRR-Test-caseS.pdf', '', '', '', '6', 'Individual'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `lab_report_submissions` +-- + +CREATE TABLE `lab_report_submissions` ( + `Submission_ID` int(11) NOT NULL, + `Submission_Date` datetime DEFAULT NULL, + `Lab_Report_ID` int(11) DEFAULT NULL, + `Student_id` varchar(200) COLLATE utf8mb4_bin DEFAULT NULL, + `Course_Group_id` int(11) DEFAULT NULL, + `Attachment1` longtext COLLATE utf8mb4_bin, + `Notes` longtext COLLATE utf8mb4_bin, + `Attachment2` varchar(1000) COLLATE utf8mb4_bin NOT NULL, + `Attachment3` varchar(1000) COLLATE utf8mb4_bin NOT NULL, + `Attachment4` varchar(1000) COLLATE utf8mb4_bin NOT NULL, + `Marks` double DEFAULT NULL, + `Status` varchar(100) COLLATE utf8mb4_bin NOT NULL, + `Title` varchar(500) COLLATE utf8mb4_bin NOT NULL, + `Visibility` varchar(30) COLLATE utf8mb4_bin NOT NULL DEFAULT 'Private' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- +-- Dumping data for table `lab_report_submissions` +-- + +INSERT INTO `lab_report_submissions` (`Submission_ID`, `Submission_Date`, `Lab_Report_ID`, `Student_id`, `Course_Group_id`, `Attachment1`, `Notes`, `Attachment2`, `Attachment3`, `Attachment4`, `Marks`, `Status`, `Title`, `Visibility`) VALUES +(1, '2019-01-17 00:00:00', 1, '201825800050', 0, 'Reading list.txt', '-', '', '', '', 5, 'Marked', 'Reading 1 submission', 'Public'), +(5, '2019-01-21 08:31:00', 2, '201825800050', 0, 'Trial Balance.txt', ' - @2019-01-21 09:35 : Sorry I missed some details from your report', 'Boorka.jpg', '', '', 6, 'Marked', 'Submission x', 'Private'), +(6, '2019-01-21 09:31:00', 2, '201825800054', 0, 'Mohamed-201825800050-Backup & Recovery Report.pdf', '@2019-01-21 09:34 : Good work', 'Mohamed-201825800050-Database Replication Report.pdf', '', '', 4, 'Marked', 'My Submission for reading 2', 'Private'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `students_data` +-- + +CREATE TABLE `students_data` ( + `ID` int(11) NOT NULL, + `Student_ID` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL, + `Passport_Number` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- +-- Dumping data for table `students_data` +-- + +INSERT INTO `students_data` (`ID`, `Student_ID`, `Passport_Number`) VALUES +(1, '201825800054', 'LJ7951632'), +(2, '201825800050', 'P00581929'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `users_table` +-- + +CREATE TABLE `users_table` ( + `User_ID` int(11) NOT NULL, + `Email` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL, + `Password` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `Full_Name` varchar(50) CHARACTER SET utf8 DEFAULT NULL, + `UserType` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL, + `Student_ID` varchar(500) COLLATE utf8mb4_bin DEFAULT NULL, + `Passport_Number` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL, + `Status` varchar(30) COLLATE utf8mb4_bin NOT NULL DEFAULT 'Active' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- +-- Dumping data for table `users_table` +-- + +INSERT INTO `users_table` (`User_ID`, `Email`, `Password`, `Full_Name`, `UserType`, `Student_ID`, `Passport_Number`, `Status`) VALUES +(3, 'admin@qq.com', '123', 'Kamal', 'Admin', '0', NULL, 'Active'), +(8, 'lanhui@qq.com', '1234', 'Lanhui', 'Lecturer', NULL, '123', 'Active'), +(9, 'mohamed@qq.com', '123', 'Mohamed', 'Student', '201825800050', 'P00581929', 'Active'), +(10, 'mark@qq.com', '123', 'Mark ', 'TA', NULL, '123', 'Active'), +(11, 'john@qq.com', '123', 'John', 'TA', NULL, '123', 'Active'), +(12, 'mehdi@qq.com', '123', 'El-mehdi Houzi', 'Student', '201825800054', 'LJ7951632', 'Active'); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `courses_table` +-- +ALTER TABLE `courses_table` + ADD PRIMARY KEY (`Course_ID`); + +-- +-- Indexes for table `course_groups_table` +-- +ALTER TABLE `course_groups_table` + ADD PRIMARY KEY (`Course_Group_id`), + ADD UNIQUE KEY `Group_Name` (`Group_Name`); + +-- +-- Indexes for table `course_group_members_table` +-- +ALTER TABLE `course_group_members_table` + ADD PRIMARY KEY (`ID`); + +-- +-- Indexes for table `course_students_table` +-- +ALTER TABLE `course_students_table` + ADD PRIMARY KEY (`ID`); + +-- +-- Indexes for table `extended_deadlines_table` +-- +ALTER TABLE `extended_deadlines_table` + ADD PRIMARY KEY (`ID`); + +-- +-- Indexes for table `lab_reports_table` +-- +ALTER TABLE `lab_reports_table` + ADD PRIMARY KEY (`Lab_Report_ID`); + +-- +-- Indexes for table `lab_report_submissions` +-- +ALTER TABLE `lab_report_submissions` + ADD PRIMARY KEY (`Submission_ID`); + +-- +-- Indexes for table `students_data` +-- +ALTER TABLE `students_data` + ADD PRIMARY KEY (`ID`); + +-- +-- Indexes for table `users_table` +-- +ALTER TABLE `users_table` + ADD PRIMARY KEY (`User_ID`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `courses_table` +-- +ALTER TABLE `courses_table` + MODIFY `Course_ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12; +-- +-- AUTO_INCREMENT for table `course_groups_table` +-- +ALTER TABLE `course_groups_table` + MODIFY `Course_Group_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; +-- +-- AUTO_INCREMENT for table `course_group_members_table` +-- +ALTER TABLE `course_group_members_table` + MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; +-- +-- AUTO_INCREMENT for table `course_students_table` +-- +ALTER TABLE `course_students_table` + MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15; +-- +-- AUTO_INCREMENT for table `extended_deadlines_table` +-- +ALTER TABLE `extended_deadlines_table` + MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT; +-- +-- AUTO_INCREMENT for table `lab_reports_table` +-- +ALTER TABLE `lab_reports_table` + MODIFY `Lab_Report_ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; +-- +-- AUTO_INCREMENT for table `lab_report_submissions` +-- +ALTER TABLE `lab_report_submissions` + MODIFY `Submission_ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; +-- +-- AUTO_INCREMENT for table `students_data` +-- +ALTER TABLE `students_data` + MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; +-- +-- AUTO_INCREMENT for table `users_table` +-- +ALTER TABLE `users_table` + MODIFY `User_ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/homepage/lrr_source_code.zip b/homepage/lrr_source_code.zip new file mode 100644 index 0000000..bf3fb78 Binary files /dev/null and b/homepage/lrr_source_code.zip differ diff --git a/homepage/mailing.html b/homepage/mailing.html new file mode 100644 index 0000000..9aff958 --- /dev/null +++ b/homepage/mailing.html @@ -0,0 +1,115 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+ + + +
+
+ +

Mailing List

+ +Please subscribe to our mailing list to get email updates about project updates. +

+Enter Your email address
+
+ +

+ + + + + +
+ + + +
+
+ + + + + + + + + + diff --git a/homepage/overview.html b/homepage/overview.html new file mode 100644 index 0000000..7c39cc8 --- /dev/null +++ b/homepage/overview.html @@ -0,0 +1,141 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ + + +
+
+ +
+ + + +
+
+

Overview

+ + + LRRS is an open source lab report management software for college students. + + +
+ The lab report repository system was developed for general purposes and used to replace old + paperwork and email-based systems . This system increases the efficiency of lab report + submission and result reporting for both lecturers and students. +

+ + + The project was developed at ZJNU by Mohamed nor and El-mahdi houzi. + + The project was tested by some undergraduate students at the Zhejiang Normal University. +
The system is developed using client/server architecture and its compatible with both Linux and Microsoft Windows Operating Systems. The system was developed using PHP Scripting language and MySQL as database management system. + + + +
The LRRS project has seen incredible improvements since it's development earlier 2019. + The software includes a lot of features that simplify assignment submission and grading. + + + we invite you to participate in the development of LRRS. + + + + For helpful hints about how to get the most out of this project, see Quick Start Section. + + + + + + + + +
+ + + +
+ + + + + + + + + + + diff --git a/homepage/quickstart.html b/homepage/quickstart.html new file mode 100644 index 0000000..5ca2eeb --- /dev/null +++ b/homepage/quickstart.html @@ -0,0 +1,144 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+
+ +
+ + +
+
+ +

Quick Start

+ +
+The LRRS allows access only to authorized users with specific roles (system administrator, lecturer, TA and student). Depending on the user’s role, he/she is able to access only specific modules of the system. +
+ + How LRRS Works
+Below is a quick summary of the core LRRS modules aligned to their user roles. For a more detailed explanation, please refer to the documentation of the system.
+ + +
    +
  1. Administrator
  2. • Creates lecturer and TA user accounts and course portals. +
    • Administrator assigns lecturer and TA to each course portal. + +
  3. Lecturer
  4. +• To make the system more flexible we allowed the lecturer to create his/her own course portals. +
    • Posts lab reports inside course portals
    + +
  5. Student
  6. + • Create their user accounts using their student id and Passport/ID numbers. +
    • Browse course portals in the system and join them. Based on the setting for each course portal (managed by its lecturer) the joining process may require lecturer approval. +
    • View/download Lab report assignments in the portal. +
    • Submit their work for the lab report assignment. +
    • View their marked submission and request remarking if needed. + + + + + +
  7. Visitor
  8. • Can only view public reports without the need for authorization.
    + + + + + +
+ + +
To better understand different user roles, see System Use Case. + + +
+ + + +
+
+ + + + + + + + + diff --git a/homepage/screenshots.html b/homepage/screenshots.html new file mode 100644 index 0000000..07f56b4 --- /dev/null +++ b/homepage/screenshots.html @@ -0,0 +1,183 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+ + + +
+
+ +

Screenshots +

+ Below are selected screenshots from LRRS (click on screenshot to view in full size) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
Screen 1.0 : Home Page +
+
Screen 2.0 : Lecturer Home Page +
+
Screen 3.0 : Student Home Page +
+
Screen 4.0 : Course home Page for lecturer +
+
Screen 5.0 :Student Assignment listing +
+
Screen 6.0 : Public Reports for visitors +
+
Screen 7.0 :Lecturer View Submissions +
+
Screen 8.0 : Lecturer Mark submission +
+ + + + + + + + +
+ + + +
+
+ + + + + + + + + + + diff --git a/homepage/screenshots/Lecturer_Course_Home.png b/homepage/screenshots/Lecturer_Course_Home.png new file mode 100644 index 0000000..e477b62 Binary files /dev/null and b/homepage/screenshots/Lecturer_Course_Home.png differ diff --git a/homepage/screenshots/Lecturer_HomePage_.png b/homepage/screenshots/Lecturer_HomePage_.png new file mode 100644 index 0000000..59ea08f Binary files /dev/null and b/homepage/screenshots/Lecturer_HomePage_.png differ diff --git a/homepage/screenshots/Lecturer_Mark_Submission.png b/homepage/screenshots/Lecturer_Mark_Submission.png new file mode 100644 index 0000000..cfa550b Binary files /dev/null and b/homepage/screenshots/Lecturer_Mark_Submission.png differ diff --git a/homepage/screenshots/Lecturer_View_Submissions.png b/homepage/screenshots/Lecturer_View_Submissions.png new file mode 100644 index 0000000..86edcfc Binary files /dev/null and b/homepage/screenshots/Lecturer_View_Submissions.png differ diff --git a/homepage/screenshots/Public_Reports.png b/homepage/screenshots/Public_Reports.png new file mode 100644 index 0000000..e1cdced Binary files /dev/null and b/homepage/screenshots/Public_Reports.png differ diff --git a/homepage/screenshots/Student_Enrolled_Courses.png b/homepage/screenshots/Student_Enrolled_Courses.png new file mode 100644 index 0000000..65ceb9f Binary files /dev/null and b/homepage/screenshots/Student_Enrolled_Courses.png differ diff --git a/homepage/screenshots/Student_Lab_Report_listing.png b/homepage/screenshots/Student_Lab_Report_listing.png new file mode 100644 index 0000000..624ab05 Binary files /dev/null and b/homepage/screenshots/Student_Lab_Report_listing.png differ diff --git a/homepage/screenshots/admin.png b/homepage/screenshots/admin.png new file mode 100644 index 0000000..de50433 Binary files /dev/null and b/homepage/screenshots/admin.png differ diff --git a/homepage/screenshots/home.png b/homepage/screenshots/home.png new file mode 100644 index 0000000..38bb6fe Binary files /dev/null and b/homepage/screenshots/home.png differ diff --git a/homepage/screenshots/home2.png b/homepage/screenshots/home2.png new file mode 100644 index 0000000..4e1de8d Binary files /dev/null and b/homepage/screenshots/home2.png differ diff --git a/homepage/screenshots/home3.png b/homepage/screenshots/home3.png new file mode 100644 index 0000000..53eb2ca Binary files /dev/null and b/homepage/screenshots/home3.png differ diff --git a/homepage/screenshots/home4.png b/homepage/screenshots/home4.png new file mode 100644 index 0000000..dcc2672 Binary files /dev/null and b/homepage/screenshots/home4.png differ diff --git a/homepage/sourcecode.html b/homepage/sourcecode.html new file mode 100644 index 0000000..aba841d --- /dev/null +++ b/homepage/sourcecode.html @@ -0,0 +1,128 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+
+ +
+ + +
+
+ +

Source Code Download

+ + + + + +
+ + + +
+
+ + + + + + + + + + diff --git a/homepage/style.css b/homepage/style.css new file mode 100644 index 0000000..4330662 --- /dev/null +++ b/homepage/style.css @@ -0,0 +1,653 @@ +@font-face { + font-family: "Linux Libertine"; + src: url("fonts/LinLibertine_RZ.woff") format('woff'); +} +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +body { + margin: 0; +} +article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary { + display: block; +} +audio,canvas,progress,video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden],template { + display: none; +} +a { + background-color: transparent; +} +a:active,a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b,strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +mark { + background: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub,sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; + max-width: 100%; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + box-sizing: content-box; + height: 0; +} +pre { + overflow: auto; +} +code,kbd,pre,samp { + font-family: monospace, monospace; + font-size: 1em; +} +button,input,optgroup,select,textarea { + color: inherit; + font: inherit; + margin: 0; +} +button { + overflow: visible; +} +button,select { + text-transform: none; +} +button,html input[type="button"], input[type="reset"],input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled],html input[disabled] { + cursor: default; +} +button::-moz-focus-inner,input::-moz-focus-inner { + border: 0; + padding: 0; +} +input { + line-height: normal; +} +input[type="checkbox"],input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-appearance: textfield; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +td,th { + padding: 0; +} +html { + color: #222; + font-size: 1em; + line-height: 1.4; +} +::-moz-selection { + background: #b3d4fc; + text-shadow: none; +} +::selection { + background: #b3d4fc; + text-shadow: none; +} +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; +} +audio,canvas,iframe,img,svg,video { + vertical-align: middle; +} +fieldset { + border: 0; + margin: 0; + padding: 0; +} +textarea { + resize: vertical; +} +.browserupgrade { + margin: 0.2em 0; + background: #ccc; + color: #000; + padding: 0.2em 0; +} +.hidden { + display: none !important; +} +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} +.invisible { + visibility: hidden; +} +.clearfix:before,.clearfix:after { + content: " "; + display: table; +} +.clearfix:after { + clear: both; +} +@media only screen and (min-width: 35em) { +} +@media print,(-webkit-min-device-pixel-ratio: 1.25),(min-resolution: 1.25dppx),(min-resolution: 120dpi) { +} +@media print { + *,*:before,*:after,*:first-letter,*:first-line { + background: transparent !important; + color: #000 !important; + box-shadow: none !important; + text-shadow: none !important; + } + a,a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="#"]:after,a[href^="javascript:"]:after { + content: ""; + } + pre,blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr,img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p,h2,h3 { + orphans: 3; + widows: 3; + } + h2,h3 { + page-break-after: avoid; + } +} +h1, h2, h3, h4, h5, h6 { + color: #000; + background: none; + font-weight: normal; + margin: 0; + overflow: hidden; + padding-top: 0.5em; + padding-bottom: 0.17em; +} +.article h1 { + font-family: 'Linux Libertine','Georgia','Times',serif; + border-bottom: 1px solid #a2a9b1; +} +.article h2 { + font-size: 1.6em; + margin: 0.5em 0 0.5em 0; + font-family: 'Linux Libertine','Georgia','Times',serif; + border-bottom: 1px solid #a2a9b1; + line-height: 1.4em; + padding-bottom: 0em; +} +.article h3 { + font-weight: bold; + font-size: 1.2em; +} +.article p.roleNote { + padding: 1em 0 0 1.6em; + font-style: italic; +} +p.siteSub { + font-size: 92%; +} +body { + background: url(img/body-top.png) repeat-x top left #f6f6f6; +} +ul { + list-style-type: none; + list-style-image: none; + margin: 0; + padding: 0.3em 0 0 0; +} +h1 { + line-height: 1.3; + margin-bottom: 0.25em; + padding: 0; + letter-spacing: 0; + font-size: 2.3em; +} +a, a:visited { + color: #0645ad; + text-decoration: none; +} +a{ + color: #0645ad; +} +a:hover { + text-decoration: underline; +} +.wrapAll { + width: 100%. +} +.sidebar { + float: left; + width: 9em; + padding: 3px 1.5em 10px 1.3em; + position: absolute; +} +.sidebar h3 { + font-size: 0.75em; + color: #4d4d4d; + font-weight: normal; + margin: 0.5em 0 0 0; + padding: 0.25em 0; + cursor: default; + border: 0; + border-bottom: 1px solid #D8D8D8; +} +.sidebar li { + line-height: 1.125em; + margin: 0; + padding: 0.25em 0; + font-size: 0.75em; + word-wrap: break-word; +} +div.articleRight { + border: 1px solid #c8ccd1; + padding: 3px; + float: right; + background-color: #f8f9fa; + font-size: 94%; + text-align: center; + overflow: hidden; + line-height: 1.4em; + padding: 3px; + font-size: 94%; + margin: 0 0 5px 15px; + text-align: left; +} +div.articleRightInner { + border: 1px solid #c8ccd1; + padding: 3px; + background-color: #f8f9fa; + font-size: 94%; + text-align: center; + overflow: hidden; +} +.logo { + margin-bottom: 20px; +} +.navigation { + padding: 0.15em 0 0 0.45em; +} +.mainsection { + margin: 0 0 0 11em; +} +.headerLinks { + text-align: right; + padding: 0.8em 1.4em; + font-size: 0.72em; + color: #777; + letter-spacing: 0.017em; +} +.headerLinks a{ + display: inline-block; + margin: 0 0 0 0.5em; +} +.tabs { +} +.tabs ul li a { + display: block; + background: url(img/blue-gradient.png) bottom left repeat-x transparent; + font-size: 0.85em; + padding: 1em 0.5em 0; + line-height: 2em; + position: relative; + top: 1px; + left: 1px; + border-bottom: 1px solid #A7D7F9; +} +.tabs ul li a.active { + background: #FFF; + border-bottom-color: transparent; +} +.tabs ul { + display: inline-block; + background: url(img/tab-separator.png) repeat-x top left transparent; + letter-spacing: 0; + margin: 0; + padding: 0 1px 0 0; +} +.tabs ul li { + margin: 0; + padding: 0; + white-space: nowrap; + display: inline-block; + float: left; + margin: 0 1px 0 0px; +} +.tabs ul { +} +.tabsLeft { + line-height: 0; + float: left; +} +#simpleSearch { + margin: 1em 1em 0em 0.5em; + display: block; + width: 267px; + height: 23px; + padding: 0 0 0 3px; + float: right; + overflow: hidden; + border: solid 1px #aaa; + background: #F6F6F6; + background: -moz-linear-gradient(top, #F6F6F6 0%, #FFFFFF 100%); + background: -webkit-linear-gradient(top, #F6F6F6 0%, #FFFFFF 100%); + background: linear-gradient(to bottom, #F6F6F6 0%, #FFFFFF 100%); +} +#searchInput { + background: transparent; + border: none; + vertical-align: top; + height: 23px; + width: 239px; + font-size: 0.8em; +} +#submitSearch { + background-image: url(img/search.png); + display: inline-block; + background-position: center center; + background-repeat: no-repeat; + height: 23px; + width: 23px; + cursor: pointer; +} +.tabsRight { + float: right; + line-height: 0; +} +.article { + padding: 1.25em 1.5em 1.5em 1.5em; + border-left: 1px solid #a7d7f9; + background: #FFF; + line-height: 1.6; + font-size: 0.875em; + border-top: 1px solid #a7d7f9; + border-bottom: 1px solid #a7d7f9; +} +.article p { + line-height: inherit; + margin: 0.5em 0; +} +span.user { + background-position: left top; + background-repeat: no-repeat; + background-image: url(img/user-ico.png); + padding-left: 15px !important; +} +.contentsPanel { + border: 1px solid #a2a9b1; + background-color: #f8f9fa; + padding: 5px; + font-size: 95%; + position: relative; + line-height: 1.7em; + width: 280px; +} +.contentsHeader { + font-family: sans-serif; + font-weight: bold; + text-align: center; +} +.hidePanel, .showPanel { + float: right; + margin: 0 5px; + position: absolute; + right: 20px; + cursor: pointer; + color: #0645ad; + top: 4px; +} +.contentsPanel ul li span { + display: inline-block; + margin-right: 8px; +} +.contentsPanel ul li { +} +.contentsPanel ul { + padding: 0 0 5px 5px; +} +.contentsPanel ul li ul{ +} +.contentsPanel ul li ul li { + padding: 0 0 0 25px; +} +.showPanel { + display: none; +} +.minimizedPanel .showPanel { + display: block; +} +.minimizedPanel .hidePanel { + display: none +} +.contentsPanel.minimizedPanel { + width: 130px; +} +.minimizedPanel .contentsHeader { + text-align: left; +} +.lavenderBox { + background: #fdfdfd; + border: 1px solid #a2a9b1; + clear: both; + font-size: 88%; + text-align: center; + padding: 3px; + line-height: 1.7em; + margin: 1em auto 0; +} +.lavenderBox .header { + background: #ccccff; + padding: 0.25em 1em; + line-height: 1.5em; + text-align: center; + font-weight: bold; + color: #0645ad; + font-size: 115%; + margin-bottom: 3px; +} +.lavenderBox .subtitle { + background: #ddddff; +} +.linklist a:after { + content: " · "; + font-weight: bold; +} +.linklist a:last-child:after { + content: ""; +} +.linklist a { + white-space: nowrap; +} +.categories { + border: 1px solid #a2a9b1; + background-color: #f8f9fa; + padding: 5px; + margin-top: 1em; + font-size: 1.1em; + clear: both; +} +.categories a:after { + content: " | "; + font-weight: bold; +} +.categories a:last-child:after { + content: ""; +} +.pagefooter { + padding: 1.5em 1.3em 2em; + font-size: 75%; + line-height: 2em; +} +.pagefooter a { + display: inline-block; + margin-right: 1em; +} +@media screen and (max-width: 850px) { + #searchInput { + width: 110px; + } + #simpleSearch { + width: 138px; + } +} +@media screen and (max-width: 700px) { + .tabsRight { + display: none; + } +} +@media screen and (max-width: 550px) { + .sidebar { + width: 6em; + padding: 3px 0.5em 10px 0.5em; + } + .mainsection { + margin: 0 0 0 7em; + } + .contentsPanel { + width: auto; + } +} +@media screen and (max-width: 400px) { + #simpleSearch { + display: none; + } +} + + + + + + + + +.tabsLeftx{ +background-color:#3590D5; +width:100%; +} + +.menubox{ +color:#fff; +padding-left:50px; +padding-right:50px; +font-weight:bold; +} + +.active{ +border:1px solid #A7D7F9; + + +} + +.bigLetter{ +font-size:28pt; +} + +*{ +font-size:13pt; +} + +.article{ +min-height:500px;line-height:30px;border-right:1px solid #A7D7F9;padding-top:0px; +} \ No newline at end of file diff --git a/homepage/subscribed.html b/homepage/subscribed.html new file mode 100644 index 0000000..e4c3a8a --- /dev/null +++ b/homepage/subscribed.html @@ -0,0 +1,112 @@ + + + + + + LRRS Home Page + + + + + + + + + + + +
+ +
+ +
+ + + +
+
+ +

Home

+
+

Thank You For Subscribing

+ +
+ + + + + + +
+ + + +
+
+ + + + + + + + +