how to implement collection interface - collections

In an institute following information is maintained about the students:
Student Class
Roll Number (Unique identifier of the student)
First Name
Last Name
Year Of Study
Activity Choice
For each of the following scenarios, specify which of the four core collection interfaces will be most appropriate and why. If you feel, more than one interface is suitable, you can mention all of them. Also describe briefly, why you think so.
1.Every week, a student is chosen at random as in charge of the Mess Food committee.
2.The students are allowed to choose a recreation activity to be provided by the institute in the common room. List of unique activities is to be prepared to be provided by the institute.
3.We need to know how many students have opted for each activity. So count the number of students who have the same activity.
4.The institute provides a career counselor for students who visit the institute once a week. Each student can book a slot with the counselor. Create a waiting list of students for the forthcoming weekly visit.

Related

Need help todesign ER Diagram

How can i design this ER Diagram
The Ministry of Transportation (MOT) supplies department keeps track of all the items (furniture and equipment such as a chair or printer) in the Ministry offices. There are several MOT buildings and each one is given a different name to identify it. Each item is assigned a unique ID when it is purchased. This ID is used to keep track of the item, which is assigned to a room within a building. Each room within a building is assigned to a department, and each department has a single employee as its manager.
i am trying several time but can't understand what to do.If anyone can simplified then it can be much easier for me.

Designing Date-Time schema in Neo4j

I have a question on 'schema' design. To simplify, there are basically 2 entities, Universities and Students. Students can be 'Current' or 'Past'. Each Student has a 'start date' and, possibly, an 'end date'. Now, I can have a relationship from University to Student of type 'Current' or 'Past'. Students can be Current/Past in multiple Universities.
My question is - How do I represent the dates?
I can have the Date as a Property of the relationship (Past or Current), but that will not make it easy to answer, say, "Show me all students who started in 2009". Normally, I would have a separate date graph but since we don't have hyper edges in Neo4j, I'm not sure what the best design/practice would be…
I could create an intermediate node (e.g. 'CurrentStudent') that sits between each relationship, and connect that to the date graph (a fake hyperedge). Any other thoughts?
Thanks in advance...
I'd put a from and to property onto a studies_at relationship from student to university. The value for from and to are the milliseconds since epoch (aka Date.getTime() in Java). A current student is indicated by from equals Long.MAX_VALUE.
Universities and students get a label and a indexed property for their name.
To find all students of a university starting in 2009:
MATCH (:University {name:'my university'})<-[r:STUDIES_AT}-(student:Student)
WHERE r.from >= {ms_since_epoch_for_Jan 1st 2009}
AND r.from <= {ms.since_epoch_for_Dec_31st 2009}
RETURN student
Of course you can introduce a time tree. Then the studies_at relationship becomes a node since the fact of studying is now a thing on it's own in your model. The studies_in node is connected to the student, the unversity and twice to the time tree, with a starts and ends relationship.
The time tree needs to have the granularity (day, minutes, seconds) mandated by the granularity of your searches.

Graph design (for neo4j) for sports tournaments

I want to use a graph database for a web application that tracks the players, matches, leagues for a given sport say volleyball. Below is the 1st level model I came up with. I would like to support the below statistics for this web application
Player
Show all the leagues played by a player.
Show all the matches played by a player in each league.
Player's current team and his previous teams.
How many times the player was a captain and all the leagues for which he was the captain.
Team
All leagues played by a team.
How many times the team was a winner or runner.
NOTE: Right click on the image and open it in a new tab to see the original image.
You model looks good, however after looking at your use cases, I have a few questions/suggestions:
Query
I'll give these in Cypher as it's easiest to show in this format.
Player
Show all the leagues played by a player.
START player=node:Player('indexForPlayer')
MATCH player-[PLAYED]->match-[PART_OF]->league
RETURN league
Show all the matches played by a player in each league.
START player=node:Player('indexForPlayer')
MATCH player-[PLAYED]->match-[PART_OF]->league
RETURN match, collect(league)
Player's current team and his previous teams.
START player=node:Player('indexForPlayer')
MATCH player-[BELONGED_TO]->team
RETURN team
How many times the player was a captain and all the leagues for which he was the captain.
How do you determine if they were a captain of a league?
Team
How many times the team was a winner or runner.
You might want to put this as a relationship such as (match)-[WINNER]->(team) this way to find out how many wins your team has, all you have to do is count the WINNER relationship.
Data Model
Add a property to the Match node for date played. I'm unfamiliar with sports, but Year may not be enough if they can swap teams within a year, however Neo4j doesn't really have a good method for dealing with time, other than a 'seconds since epoch ` type system.

Fuzzy Matching a paragraph within a large text

I need to do a pretty complex matching of phrases.
I have large bodies of text in files which exceed 1000 words each.
The phrases I am searching for (searchphrase) are like this:
Investment does not mean:
i. Claims to money that arise solely from:
1. Commercial contracts for the sale of goods or
services by a national or an enterprise of a party
to an enterprise in the territory of the other party,
or
2. The extension of credit in connection with a
commercial transaction, such as trade financing
other than loans or claims to money previously
covered.
I want to know if the phrase occurs in each of the files I have. However, the files will not have content that are exact replicas of the phrase. Instead the file (textfile) will be a large document with a paragraph like:
But investment does not mean claims to money derived solely from
commercial transactions designed exclusively for the sale of goods or
services by a national or legal person in the territory of one
Contracting Party to a national or legal person in the territory of the
other Contracting Party, credits to finance commercial transactions such
as trade financing, and other credits with a duration of less than three
years, as well as credits granted to the State or to a State enterprise.
As you can see, searchphrase is pretty similar in actual meaning to this paragraph from textfile. There is also considerable overlap in the keywords. Hence, I should get a match.
What sort of algorithm should I try and use to code this? Are pre-coded modules available anywhere that do this job?

wcf+desktop app or website?

I am developing a school management system and I am struggling whether I should develop for [desktop app + wcf] or web app(website). Which one is going to be the best for the given scenario?
The main goals for the “Integrated Web-Based School Management and Quality Audits Software Project for Secondary Schools are outlined below. In addition, specific objectives within each of the goals have been provided.
Goal 1: To facilitate automated data entries in secondary schools
Objective 1:1- To provide internet facilities and computer systems for secondary schools to further facilitate entries of student information into an integrated school management system.
Objective 1:2- To provide teachers with the possibility to enter continuous assessment data into the computer systems for each student.
Objective 1:3- To provide teachers with the possibility to enter end of term results for each student.
Objective 1:4:- To provide teachers with the possibility to enter students’ conduct at end of term for each student
Objective 1:5:- To provide the administration office with the possibility to register new students into the system
Objective 1:6:- To provide finance/fees office with the possibility to enter fees information for each student
Objective 1:7:- To provide parents with the possibility to access their children’s information online and provide feedback when needed or requested to do so
Goal 2:- To generate a portfolio of student information in respect of each student. A unique student identification will be used to access each student’s portfolio. The following are the main components of the portfolio.
Objective 2:1:- One of the components of the students’ portfolio page will be the Result Slip of the immediate last examination term. This will display all subjects taken by the student, continuous assessment results, examination results, grades and positions obtained in each subject, overall student position, student’s conduct and recommendation information. This report will automatically be gathered from the various inputs made from the individual teachers and staff
Objective 2:2:- Up to date historical record of Fees Information. This is vital information that will be available on each student portal. All fees due and all payments made that are entered by the fees/finance staff will be gathered by this component of the portfolio. Parents will be able to see this as well and provide feedback on any observed discrepancies.
Objective 2:3:- Attendance and Conduct report. This component of the portfolio is intended to give an account of the student’s attendance records and information on conduct as provided by the school authorities. If the information demands parent’s attention and feedback, this will be indicated here, and parents will be able to enter relevant feedback as requested.
Objective 2:4:- Completed and Pending Assignments Module. This component of the student’s portfolio will list all assignments completed by the student in the current term and will list uncompleted ones as well.
Goal 3:- To generate aggregated data for the management of the school. This will enable the school management have a high-level overview of student population, performance statistics for all the modules in the various classes, aggregated data on fees paid and fees pending, etc. There will hyperlinks or select options from which authorized staff will click or select from, in order to reach the requested aggregated data. Main components of the management page are listed below,
Objective 3:1:- One of the components of the staff portfolio page will be the Population Statistics. This will indicate total number of students, which is expandable to also list number of males and number of females. This can further be expanded to list female and male students in the various classes
Objective 3:2:- Performance Overview is another component of the staff portfolio. This will provide a high level overview of students’ performance. Per each class and for each subject, this module will list the number of Grade A students, Grade B students and so on and so forth. This links can be further expanded to view the number of males and females who obtained the various grades in the various classes. This module will also compare grades obtained in one subject with another to give an overview of modules that students do very well with those that they do not, to help management take quick action to rectify any anomalies
Objective 3:3:- Fees Overview is another component of the staff portfolio. This will provide fees information in the form of total fees paid within a specific period (Selectable from term, year, previous year(s), all years until current term, etc.). This information can be further expanded to show fees owed per class, payments overdue and allow the fees office to generate generic reminder messages in the form of email or text messages to parents of students who are overdue.
Reading through those requirements, it sounds like this is more than one application.
Undoubtedly you need some sort of web application (probably ASP.NET in some form?) to allow the parents of students to asses their children's records.
However for security purposes this same application should probably not be used for teachers and administrative staff to edit these records. Those functions should be on a protected LAN, and require more application security for viewing or editing any potentially sensitive data (especially financial records).
I don't see where WCF would fit into this, unless you need to provide some web service support to some other system? Or perhaps proving some "application server" on a protected LAN that can use WCF to serve data to 2 separate applications for outside / public access (from separate web servers in a DMZ) and one for internal users.
There isn't really 1 answer to this question.
You said "I am struggling whether I should develop for [desktop app + wcf] or web app(website)", but it sounds like you need to develop the [desktop app + wcf] anyway because the school administration is already using some sort of desktop application to update the data. You also need a web application for the parents to view their children's record. If you can, I strongly suggest you skip the wcf and just do a web application. At my current job, there's something similar to what rally25rs describe, and it is a pain in the ass to maintain the desktop application, the asp.net website and the wcf service business logic. But it sounds like you have no choice, so good luck!

Resources