Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
f431c5b
My first commit
Jul 5, 2018
ef9b8e4
My first commit
Jul 5, 2018
7867af7
del sql
Duttabhi Jul 27, 2018
4398e6d
del sql
Duttabhi Jul 27, 2018
09f4ab5
del sql
Duttabhi Jul 27, 2018
7c52d97
Delete school_resource_system_grade.sql
Duttabhi Jul 27, 2018
9cf4279
del sql
Duttabhi Jul 27, 2018
c99b5f6
Delete school_resource_system_mindmap.sql
Duttabhi Jul 27, 2018
7966886
del sql
Duttabhi Jul 27, 2018
3167b22
del sql
Duttabhi Jul 27, 2018
da19f36
del sql
Duttabhi Jul 27, 2018
bd67cce
del sql
Duttabhi Jul 27, 2018
b55eeb2
del sql
Duttabhi Jul 27, 2018
aa092ca
del sql
Duttabhi Jul 27, 2018
f6ad960
del sql
Duttabhi Jul 27, 2018
c7c99f2
del sql
Duttabhi Jul 27, 2018
c3a4740
del sql
Duttabhi Jul 27, 2018
ce0f4ef
del sql
Duttabhi Jul 27, 2018
df880fc
Description
Duttabhi Jul 27, 2018
4c34318
Report
Duttabhi Jul 27, 2018
9a673e6
war file was not required
Duttabhi Jul 12, 2019
41513d6
Uploading Images
Duttabhi Aug 26, 2020
c07cdaa
Adding Images
Duttabhi Aug 26, 2020
5aa908e
Changing Sizes
Duttabhi Aug 26, 2020
d21dde4
Adding more Images
Duttabhi Aug 26, 2020
44ff557
Adjusting mobile image
Duttabhi Aug 26, 2020
f252900
Adding contents for image
Duttabhi Aug 26, 2020
968f77e
update
Duttabhi Aug 26, 2020
fe95394
update readme
Duttabhi Mar 26, 2022
f812016
update readme
Duttabhi Mar 26, 2022
dc3777a
update readme
Duttabhi Mar 26, 2022
54eca7d
update readme
Duttabhi Mar 26, 2022
489f553
update readme
Duttabhi Mar 26, 2022
d121b32
update readme
Duttabhi Mar 26, 2022
2f6f200
update picture
Duttabhi Mar 26, 2022
d4ef9a7
updating project files
Duttabhi Mar 26, 2022
0564c88
update readme
Duttabhi Mar 26, 2022
9273dfb
update readme
Duttabhi Mar 26, 2022
bfedff0
update readme
Duttabhi Mar 26, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
107 changes: 106 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,106 @@
# School-Content-Resource-System
# School-Resource-System(AKA School-Content-Resource-System)

**Objective: Create a free online resource bank for students.**

**About**

*School Resource System under the Spoken Tutorial project is a website prototype which provides ICT (Information and Communication Technologies) tools for teaching/learning and resource materials for school teachers and students focusing on age group below 12. It contains content in the form of various resource types, such as videos, concept maps, images, PhETs (Physics Education Technologies in collaboration with University of Colarado, Boulder) and links to various web pages. It consist of three interfaces i.e. User, Contributor (or teacher) and Admin, for better management and use. Website contains filter search as well as keyword search, so that minimum time is required to access a resource. The resources are of four types, i.e. Concept maps (or Mind maps), PhETs, tutorials and links. These resources are all open source.*


**Interface categories**

```1. End User Interface: Can search for resources like tutorials, interactive modules, mind-maps and addtional links by selecting subjects and class. User can also browse content through the topic search option which auto populates the list of available topics based on keystrokes.```

```2. Contributor Interface: Can upload various resources to the system.```

```3. Admin Interface: Can review and publish the resources uploaded by the contributor.```


**Demo Videos**

**1. End User Interface**

https://user-images.githubusercontent.com/35317861/160241985-aab48274-7f54-4a10-9f22-292a875194e7.mp4

**2. Contributor Interface**: Contributes tutorial resource of physics for grade 6.

https://user-images.githubusercontent.com/35317861/160242097-13a17fe4-9fdf-4f26-861c-9fb9bb42432d.mp4

**3. Admin Interface**: Approving the resource contributed by the contributor int he above vdeo

https://user-images.githubusercontent.com/35317861/160242144-ca573bfd-f04e-47b8-826f-25448fff01e1.mp4

**4. Auto populating searcbox**

https://user-images.githubusercontent.com/35317861/160242158-a19e27a6-015a-485b-8502-9843415f95fe.mp4


```Implementation: Autocomplete servelet mapping is done in web.xml file. It is called from the forntend and in backend it gets hit to this class and returns a asynchronous response as JASON. The class is defind as below.```

```
public class AutoComplete extends HttpServlet {
private static final long serialVersionUID = 1L;

public AutoComplete() {
super();

}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ArrayList<String> al=new ArrayList<String>();
try{
Connection conn=DataSource.getConnection();
Statement stmt=conn.createStatement();
String sql="select topic_name from topics";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
al.add(rs.getString("topic_name"));
}
rs.close();
stmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
JSONArray json=new JSONArray(al);
response.setContentType("application/json");
response.getWriter().print(json);
}
}
```

**Silent features and learnings from project**

```a. Build Maven web project on Eclipse.```

```b. Add dependecies in pom.xml files of various .jar like mysql connector used```

```c. Add servlet mappings in web.xml to use services of backend(querying database and returning results) using inputs from frontend.```

```d. Work with servlets and Java Server Pages.```

```e. Work with MySQL and connect using jdbc.```

```f. Adding features like auto-list contents as user types in searchbox.```

```g. Added checks in form like requirement for good password and implementing MD5 to store password in DB in protected form.```


**Configuration**

```1. Download the entire project and open in Eclipse(for best experience).```

```2. At the time of building the project, I have used jave 1.8.0_271 (or any Java8 will do)```

```3. Used tomact v8.5.77```

```4. Dowload mysql connector jar, unzip it and in external jar, browse to location where you have kept the downloaded(and unzipped jar)```

```5. You can set the password for root as mysql or you can use any(just you need to change the places where I have incoked connection)```

```6. In SpokenTutorial.SQL find in this project you will find all the DDLs and intial insert vlaues to start with.```

```7. Start the project.```

```8. From the interface create 2 users.```

```9. Now go to the database(I have used MySQL workbench) and make one user as admin(by updating the user_roles table, change the role_id from 2 to 3 to make it admin).```
179 changes: 179 additions & 0 deletions SpokenTutorial.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
CREATE DATABASE SCHOOL;
USE SCHOOL;



CREATE TABLE SUBJECT (
SUBJECT_ID INT(11) PRIMARY KEY AUTO_INCREMENT,
SUBJECT_NAME VARCHAR(255),
GRADE_ID INT(11),
USERID INT(11),
CREATIONDATE DATE
);

CREATE TABLE GRADE(
GRADE_ID INT(11) PRIMARY KEY,
GRADE_NAME VARCHAR(45)
);

CREATE TABLE USER_ROLES(
USER_ROLES_ID INT(11) PRIMARY KEY auto_increment,
ROLE_ID INT(11),
USERID INT(11)
);


CREATE TABLE ROLES_TYPE(
ROLE_ID INT(11) PRIMARY KEY,
ROLE_NAME VARCHAR(45)
);

CREATE TABLE USER(
USERID INT(11) PRIMARY KEY auto_increment,
FIRST_NAME VARCHAR(255),
LAST_NAME VARCHAR(255),
EMAIL VARCHAR(255),
PASSWORD VARCHAR(45),
ACTIVE INT(11),
CREATION_DATE DATE
);



CREATE TABLE TOPICS(
TOPIC_ID INT(11) PRIMARY KEY AUTO_INCREMENT,
TOPIC_NAME VARCHAR(255),
USERID INT(11),
SUBJECT_ID INT(11),
CREATIONDATE DATE
);



CREATE TABLE ADDITIONAL_MATERIAL (
ADDITIONAL_MATERIAL_ID INT(11) PRIMARY KEY auto_increment,
ADDITIONAL_MATERIAL_DESCRIPTION VARCHAR(255),
ADDITIONAL_MATERIAL_LINK VARCHAR(255),
RESOURCES_ID INT(11),
ACTIVITY INT(11),
USERID INT(11)
)
;



CREATE TABLE RESOURCES(
RESOURCES_ID INT(11) PRIMARY KEY auto_increment,
RESOURCES_TYPE_ID INT(11),
TOPIC_ID INT(11),
USERID INT(11),
CREATION_DATE DATE,
UPDATION_DATE DATE
);



CREATE TABLE TUTORIAL (
TUTORIAL_ID INT(11) PRIMARY KEY auto_increment,
TUTORIAL_NAME VARCHAR(255),
TUTORIAL_LINK VARCHAR(255),
TUTORIAL_DESCRIPTION VARCHAR(255),
TUTORIAL_ADDITIONAL_LINK VARCHAR(255),
RESOURCES_ID INT(11),
ACTIVITY INT(11),
USERID INT(11)
);




CREATE TABLE MINDMAP(
MINDMAP_ID INT(11) PRIMARY KEY auto_increment,
RESOURCES_ID INT(11),
MINDMAPCONTENT VARCHAR(255),
DESCRIPTION VARCHAR(255),
ACTIVITY INT(11),
USERID INT(11)
);



CREATE TABLE PHET(
PHET_ID INT(11) PRIMARY KEY auto_increment,
PHET_NAME VARCHAR(255),
PHET_LINK VARCHAR(255),
RESOURCES_ID VARCHAR(255),
ACTIVITY INT(11),
USERID INT(11)
);

create table resources_type(
resources_type_id int(11),
resources_type_name varchar(100));

##inserts statements------------------------


INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('HINDI', '1', '1', '2014-05-21');
INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('MATHEMATICS', '1', '1', '2014-05-22');
INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('PHYSICS', '1', '1', '2014-05-26');
INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('CHEMISTRY', '1', '1', '2014-05-27');
INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('PHYSICS', '2', '1', '2014-05-28');
INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('PHYSICS', '3', '1', '2014-05-29');
INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('PHYSICS', '4', '1', '2014-06-02');
INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('PHYSICS', '5', '1', '2014-06-04');
INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('PHYSICS', '6', '1', '2014-06-06');
INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('PHYSICS', '7', '1', '2014-06-08');
INSERT INTO SUBJECT(SUBJECT_NAME, GRADE_ID, USERID, CREATIONDATE) VALUES ('PHYSICS', '8', '1', '2014-06-10');



INSERT INTO GRADE VALUES('1','ONE');
INSERT INTO GRADE VALUES('2','TWO');
INSERT INTO GRADE VALUES('3','THREE');
INSERT INTO GRADE VALUES('4', 'FOUR');
INSERT INTO GRADE VALUES('5', 'FIVE');
INSERT INTO GRADE VALUES('6', 'SIX');
INSERT INTO GRADE VALUES('7', 'SEVEN');
INSERT INTO GRADE VALUES('8', 'EIGHT');

INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('HINDI-GRAMMAR','1','1','2014-07-11');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('HINDI-LITERATURE','1','1','2014-07-12');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('HINDI-DICTIONARY','1','1','2014-07-13');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('HINDI-PLAYWORK','1','1','2014-07-14');

INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('NUMBER-PLAY','1','2','2014-07-15');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('EVERYDAY-WORLD','1','3','2014-07-16');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('COLORS','1','4','2014-07-17');

INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('PHYSICS-II','1','5','2014-07-18');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('PHYSICS-III','1','6','2014-07-19');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('PHYSICS-IV','1','7','2014-07-20');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('PHYSICS-V','1','8','2014-07-21');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('PHYSICS-VI','1','9','2014-07-22');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('PHYSICS-VII','1','10','2014-07-23');
INSERT INTO TOPICS(TOPIC_NAME,USERID,SUBJECT_ID,CREATIONDATE) VALUES ('PHYSICS-VIII','1','11','2014-07-24');

INSERT INTO TOPICS VALUES ('76','CLOUD COMP','774','4215','2011-06-24');
INSERT INTO TOPICS VALUES ('11','EDGE COMP','114','4256','2019-01-11');


insert into resources_type values('1','Additional Resources');
insert into resources_type values('2','Tutorial');
insert into resources_type values('3','Phet');
insert into resources_type values('4','Mindmap');















Binary file added project_report.pdf
Binary file not shown.
30 changes: 30 additions & 0 deletions repohandler/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes>
<attribute name="module" value="true"/>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/Program Files (x86)/MySQL/Connector J 8.0/mysql-connector-java-8.0.28.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
37 changes: 37 additions & 0 deletions repohandler/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>repohandler</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>
13 changes: 13 additions & 0 deletions repohandler/.settings/.jsdtscope
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="src/main/webapp"/>
<classpathentry kind="src" path="target/m2e-wtp/web-resources"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>
2 changes: 2 additions & 0 deletions repohandler/.settings/org.eclipse.core.resources.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
11 changes: 11 additions & 0 deletions repohandler/.settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.7
4 changes: 4 additions & 0 deletions repohandler/.settings/org.eclipse.m2e.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
Loading