Home Blog Page 23

The solution HW 2.2 M101JS: MongoDB for Node.js Developers

Write a program that finds the document with the highest recorded temperature for each state, and adds a “month_high” field for that document, setting its value to true. Use the weather dataset that you imported in HW 2.1.

From the top of this page, there was one additional program that should have been downloaded:mongoProc.

With it, you can test your code and look at the Feedback section. When it says “Correct amount of data documents.”, “Correct amount of month_high documents.” and “Correct month_high documents.”, you can Turn in your assignment.

Solution:

  • Create app.js
  • Paste the following code
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/weather', function(err, db) {
    if(err) throw err;
    db.collection('data').find().sort({"State" : 1, "Temperature" : -1}).toArray(function(err, docs) {
        if(err) throw err;
        var newstate = "";
        var query = {};
        docs.forEach(function (doc) {
            console.log("Doc : " + doc);
            if(newstate != doc.State) {
                // update row
                newstate = doc.Statdbe;
                query['_id'] = doc['_id'];
                var operator = { '$set' : { 'month_high' : true } };
                db.collection('data').update(query, operator, function(err, updated) {
                    if(err) throw err;
                    console.dir("Successfully updated " + updated + " document!");
                    return db.close();
                });
            }
        });
        db.close();
    });
});
  • Run with nodejs as node app.js
  • Check the result in mongo shell with query as db.data.find({“month_high”:true}); and result will be following:
{ "_id" : ObjectId("5627f4216f0eb671e142efbd"), "Day" : 23, "Time" : 1654, "State" : "Vermont", "Airport" : "BTV", "Temperature" : 57, "Humidity" : 78, "Wind Sp
eed" : 13, "Wind Direction" : 170, "Station Pressure" : 29.1, "Sea Level Pressure" : 982, "month_high" : true }
{ "_id" : ObjectId("5627f4216f0eb671e142f180"), "Day" : 11, "Time" : 1150, "State" : "California", "Airport" : "LAX", "Temperature" : 81, "Humidity" : 32, "Wind
 Speed" : 5, "Wind Direction" : 50, "Station Pressure" : 29.63, "Sea Level Pressure" : 151, "month_high" : true }
{ "_id" : ObjectId("5627f4216f0eb671e142f41d"), "Day" : 8, "Time" : 1453, "State" : "Florida", "Airport" : "ORL", "Temperature" : 83, "Humidity" : 55, "Wind Spe
ed" : 5, "Wind Direction" : 190, "Station Pressure" : 29.97, "Sea Level Pressure" : 195, "month_high" : true }
{ "_id" : ObjectId("5627f4226f0eb671e142f746"), "Day" : 11, "Time" : 1453, "State" : "New Mexico", "Airport" : "SAF", "Temperature" : 57, "Humidity" : 32, "Wind
 Speed" : 11, "Wind Direction" : 340, "Station Pressure" : 23.87, "Sea Level Pressure" : 174, "month_high" : true }
  • Then I run mongoProc and click “Test” button which shows data are fine then I click “Turn In” which shows the following screenshot.
m101js-homework_2.2

Let me know if get any problem so that we can solve each other help. As well as if you got any easy way to do it then please let me know.

The solution to Homework 6.5 M101JS: MongoDB for Node.js Developers

Homework: Homework 6.5

In this homework, you will build a small replica set on your own computer. We will check that it works with validate.js, which you should download from the Download Handout link.

Create three directories for the three mongod processes.

On UNIX or mac, this could be done as follows:

mkdir -p /data/rs1 /data/rs2 /data/rs3

Now start three mongo instances as follows. Note that are three commands. The browser is probably wrapping them visually.

mongod --replSet m101 --logpath "1.log" --dbpath /data/rs1 --port 27017 --smallfiles --oplogSize 64 --fork 
mongod --replSet m101 --logpath "2.log" --dbpath /data/rs2 --port 27018 --smallfiles --oplogSize 64 --fork
mongod --replSet m101 --logpath "3.log" --dbpath /data/rs3 --port 27019 --smallfiles --oplogSize 64 --fork

Windows users: Omit -p from mkdir. Also omit –fork and use start mongod with Windows compatible paths (i.e. backslashes “\”) for the –dbpath argument (e.g;C:\data\rs1).

Now connect to a mongo shell and make sure it comes up

mongo --port 27017

Now you will create the replica set. Type the following commands into the mongo shell:

config = { _id: "m101", members:[
          { _id : 0, host : "localhost:27017"},
          { _id : 1, host : "localhost:27018"},
          { _id : 2, host : "localhost:27019"} ]
         };
rs.initiate(config);

At this point, the replica set should be coming up. You can type

rs.status()

to see the state of replication.

Now install and run validate.js to confirm that it works.

npm install
node validate.js

Validate connects to your local replica set and checks that it has three nodes. Type the validation code below.

Solution: XdYfY6aqjqS3ik35qS6v   My validation code is above, but I hope it may differ for you so be careful before submitting.   How i achieve that validation code? These are my own steps so may differ for you:

  • Gone to C: drive data/ folder and created rs1/, rs2 and rs3 folders
  • Open command prompt and path to C:/data/rs1 and run following command: mongod –replSet m101 –logpath “1.log” –dbpath C:/data/rs1 –port 27017 –smallfiles –oplogSize 64
  • Then opened another command prompt and path to C:/data/rs2 and fun following command: mongod –replSet m101 –logpath “2.log” –dbpath C:/data/rs2 –port 27018 –smallfiles –oplogSize 64
  • Again opened another command prompt and path to C:/data/rs3 and run following command: mongod –replSet m101 –logpath “3.log” –dbpath C:/data/rs3 –port 27019 –smallfiles –oplogSize 64
  • Again open another command prompt and run following command: mongo –port 27017
  • Then mongo database shell get opened on which run following command: config = { _id: “m101”, members:[ { _id : 0, host : “localhost:27017”}, { _id : 1, host : “localhost:27018”}, { _id : 2, host : “localhost:27019”} ] }; rs.initiate(config); You will see following message if other database ports are not opened:
    {“ok” : 0, “errmsg” : “server is not running with –replSet” }
    If all ports databases are running then you will get following success message
    {
    “info” : “Config now saved locally. Should come online in about a minute.”,
    “ok” : 1
    }
  • Now check status of the replicated databases with following command: > rs.status() { “set” : “m101”, “date” : ISODate(“2015-11-22T20:24:21Z”), “myState” : 1, “members” : [ { “_id” : 0, “name” : “localhost:27017”, “health” : 1, “state” : 1, “stateStr” : “PRIMARY”, “uptime” : 225, “optime” : Timestamp(1448223786, 1), “optimeDate” : ISODate(“2015-11-22T20:23:06Z”), “electionTime” : Timestamp(1448223795, 1), “electionDate” : ISODate(“2015-11-22T20:23:15Z”), “self” : true }, { “_id” : 1, “name” : “localhost:27018”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 74, “optime” : Timestamp(1448223786, 1), “optimeDate” : ISODate(“2015-11-22T20:23:06Z”), “lastHeartbeat” : ISODate(“2015-11-22T20:24:19Z”), “lastHeartbeatRecv” : ISODate(“2015-11-22T20:24:19Z”), “pingMs” : 0, “syncingTo” : “localhost:27017” }, { “_id” : 2, “name” : “localhost:27019”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 74, “optime” : Timestamp(1448223786, 1), “optimeDate” : ISODate(“2015-11-22T20:23:06Z”), “lastHeartbeat” : ISODate(“2015-11-22T20:24:19Z”), “lastHeartbeatRecv” : ISODate(“2015-11-22T20:24:20Z”), “pingMs” : 0, “syncingTo” : “localhost:27017” } ], “ok” : 1 } m101:PRIMARY> It shows all are OK
  • Now download the handout provided for the assignment, then unzip it.
  • Run another command prompt again and go to the path where you unzip your assignment and to hw6-5/ folder and run the following command: npm install node validate.js
  • You will see validation code as following in command line:

This way I have achieved my validation code, I hope it will be the same for you.
Please let me know if there is any way that I can run multiple command prompt instead of Opening multiple open.
Likewise, let me know if there is any simpler way.

The solution to Homework 6.4 M101JS: MongoDB for Node.js Developers

Homework: Homework 6.4

You have a sharded system with three shards and have sharded the collections “students” in the “school” database across those shards. The output of sh.status() when connected to Mongos looks like this:

mongos> sh.status()
--- Sharding Status --- 
  sharding version: {
	"_id" : 1,
	"minCompatibleVersion" : 5,
	"currentVersion" : 6,
	"clusterId" : ObjectId("5531512ac723271f602db407")
}
  shards:
	{  "_id" : "s0",  "host" : "s0/localhost:37017,localhost:37018,localhost:37019" }
	{  "_id" : "s1",  "host" : "s1/localhost:47017,localhost:47018,localhost:47019" }
	{  "_id" : "s2",  "host" : "s2/localhost:57017,localhost:57018,localhost:57019" }
  balancer:
	Currently enabled:  yes
	Currently running:  yes
		Balancer lock taken at Fri Apr 17 2015 14:32:02 GMT-0400 (EDT) by education-iMac-2.local:27017:1429295401:16807:Balancer:1622650073
	Collections with active migrations: 
		school.students started at Fri Apr 17 2015 14:32:03 GMT-0400 (EDT)
	Failed balancer rounds in last 5 attempts:  0
	Migration Results for the last 24 hours: 
		2 : Success
		1 : Failed with error 'migration already in progress', from s0 to s1
  databases:
	{  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }
	{  "_id" : "school",  "partitioned" : true,  "primary" : "s0" }
		school.students
			shard key: { "student_id" : 1 }
			chunks:
				s0	1
				s1	3
				s2	1
			{ "student_id" : { "$minKey" : 1 } } -->> { "student_id" : 0 } on : s2 Timestamp(3, 0) 
			{ "student_id" : 0 } -->> { "student_id" : 2 } on : s0 Timestamp(3, 1) 
			{ "student_id" : 2 } -->> { "student_id" : 3497 } on : s1 Timestamp(3, 2) 
			{ "student_id" : 3497 } -->> { "student_id" : 7778 } on : s1 Timestamp(3, 3) 
			{ "student_id" : 7778 } -->> { "student_id" : { "$maxKey" : 1 } } on : s1 Timestamp(3, 4) 


If you ran the query

use school
db.students.find({'student_id':2000})

Which shards would be involved in answering the query?  
Answer: s1

hw6.4answer

The solution to Homework 6.3 M101JS: MongoDB for Node.js Developers

Homework: Homework 6.3

Which of the following statements are true about choosing and using a shard key? MongoDB can not enforce unique indexes on a sharded collection other than the shard key itself, or indexes prefixed by the shard key. There must be an index on the collection that starts with the shard key. You can change the shard key on a collection if you desire. Any update that does not contain the shard key will be sent to all shards. The shared key must be unique

hw6.3answer

The solution to Homework 6.2 M101JS: MongoDB for Node.js Developers

Homework: Homework 6.2

Let’s suppose you have a five-member replica set and want to assure that writes are committed to the journal and are acknowledged by at least 3 nodes before you proceed forward. What would be the appropriate settings for w and j?  

Solution: w=”majority”

hw6.2answer

The solution to Homework 6.1 M101JS: MongoDB for Node.js Developers

Homework: Homework 6.1

Which of the following statements are true about replication in MongoDB? Check all that apply.

hw6.1answer

The minimum sensible number of voting nodes to a replica set is three.
MongoDB replication is synchronous.
By default, using the new MongoClient connection class, w=1 and j=1.
The oplog utilizes a capped collection.

The solution to Homework 5.4 M101JS: MongoDB for Node.js Developers

The solution to Homework 5.4 M101JS: MongoDB for Node.js Developers Homework: Homework 5.4

Removing Rural Residents

In this problem, you will calculate the number of people who live in a zip code in the US where the city starts with a digit. We will take that to mean they don’t really live in a city. Once again, you will be using the zip code collection, which you will find in the ‘handouts’ link on this page. Import it into your MongoDB using the following command from the command line:

> mongoimport -d test -c zips --drop zips.json

If you imported it correctly, you can go to the test database in the mongo shell and confirm that

> db.zips.count()

yields 29,467 documents.

The project operator can extract the first digit from any field. For example, to extract the first digit from the city field, you could write this query:

db.zips.aggregate([
    {$project: 
     {
	first_char: {$substr : ["$city",0,1]},
     }	 
   }
])

Using the aggregation framework, calculate the sum total of people who are living in a zip code where the city starts with a digit. Choose the answer below.

You will need to probably change your projection to send more info through than just that first character. Also, you will need a filtering step to get rid of all documents where the city does not start with a digital (0-9).

Note: When you mongoimport the data, you will probably see a few duplicate key errors; this is to be expected, and will not prevent the mongoimport from working. There is also an issue with some versions of MongoDB 3.0 where it claims that 0 documents were mongoimported, when in fact there were 29,467 documents imported. You can verify this for yourself by going into the shell and counting the documents in the “test.zips” collection.

Solution:

Run the following queries:

db.zips.aggregate([
    { $project: { _id: 0, city: 1, pop: 1 } },
    { $match: { city: /^\d.*/ } },
    { $group: { _id: null, pop: { $sum: "$pop" } } },
    { $sort: { city: 1} }
])
hw5.4answer2

Seeing the above result I submit the 298015 and it is correct for me:

hw5.4answer

The solution to Homework 5.3 (Hands-On) M101JS: MongoDB for Node.js Developers

The solution to Homework 5.3 (Hands-On) M101JS: MongoDB for Node.js DevelopersWho’s the easiest grader on campus?
A set of grades are loaded into the grades collection. The documents look like this:

{
	"_id" : ObjectId("50b59cd75bed76f46522c392"),
	"student_id" : 10,
	"class_id" : 5,
	"scores" : [
		{
			"type" : "exam",
			"score" : 69.17634380939022
		},
		{
			"type" : "quiz",
			"score" : 61.20182926719762
		},
		{
			"type" : "homework",
			"score" : 73.3293624199466
		},
		{
			"type" : "homework",
			"score" : 15.206314042622903
		},
		{
			"type" : "homework",
			"score" : 36.75297723087603
		},
		{
			"type" : "homework",
			"score" : 64.42913107330241
		}
	]
}

There are documents for each student (student_id) across a variety of classes (class_id). Note that not all students in the same class have the same exact number of assessments. Some students have three homework assignments, etc.

Your task is to calculate the class with the best average student performance. This involves calculating an average for each student in each class of all non-quiz assessments and then averaging those numbers to get a class average. To be clear, each student’s average includes only exams and homework grades. Don’t include their quiz scores in the calculation.

What is the class_id which has the highest average student performance?

Hint/Strategy: You need to group twice to solve this problem. You must figure out the GPA that each student has achieved in a class and then average those numbers to get a class average. After that, you just need to sort. The class with the lowest average is the class with class_id=2. Those students achieved a class average of 37.6

If you prefer, you may download the handout and perform your analysis on your machine with

 mongoimport -d test -c grades --drop grades.json

Solution:

Run the following SQL and the first id that you will get be the solution.

db.grades.aggregate([
    { $unwind: "$scores" },
    { $match: { $or: [ {"scores.type": "homework"}, {"scores.type":"exam"} ] } },
    { $group: { _id: { 'student_id': "$student_id", 'class_id': "$class_id" }, avg: { $avg: "$scores.score" } } },
    { $group: { _id: "$_id.class_id", class_avg: { $avg: "$avg" } } },
    { $sort: { 'class_avg': -1 } }
])

Following is the result that I got:

hw5.3answer2

So the answer is:

hw5.3answer

The solution to Homework 5.2 (Hands-On) M101JS: MongoDB for Node.js Developers

The solution to Homework 5.2 (Hands-On) M101JS: MongoDB for Node.js Developers

Crunching the Zipcode dataset
Please calculate the average population of cities in California (abbreviation CA) and New York (NY) (taken together) with populations over 25,000. For this problem, assume that a city name that appears in more than one state represents two separate cities. Please round the answer to a whole number.
Hint: The answer for CT and NJ (using this data set) is 38177.

Please note:

  • Different states might have the same city name.
  • A city might have multiple zip codes.

For purposes of keeping the Hands-On shell quick, we have used a subset of the data you previously used in zips.json, not the full set. This is why there are only 200 documents (and 200 zip codes), and all of them are in New York, Connecticut, New Jersey, and California.

If you prefer, you may download the handout and perform your analysis on your machine with

> mongoimport -d test -c zips --drop small_zips.json

Solution:

Run the following query and find the answer:

db.zips.aggregate([
    { $match: {$or: [ {state: "CA"}, {state: "NY"} ] } },
    { $group: { _id: { city: "$city" }, pop: { $sum: "$pop" } } },
    { $match: { "pop": { $gt: 25000 } } },
    { $group: { _id: null, avg_pop_of_city: { $avg: "$pop" } } }
])

I got the following answer and submit and it is correct for me. let me know if you got any other results and an easy way to proceed through it.

hw5.2answer

The solution to Homework 5.1 (Hands-On) M101JS: MongoDB for Node.js Developers

Homework: Homework 5.1 (Hands-On)

Finding the most frequent author of comments on your blog

In this assignment, you will use the aggregation framework to find the most frequent author of comments on your blog. We will be using the same basic dataset as last week, with posts and comments shortened considerably, and with many fewer documents in the collection in order to streamline the operations of the Hands-On web shell.

Use the aggregation framework in the web shell to calculate the author with the greatest number of comments.

Just to clarify, the data set for this week is not available for download.

To help you verify your work before submitting, the author with the fewest comments is Cody Strouth and he commented 68 times.

Once you’ve found the correct answer with your query, please choose your answer below for the most prolific comment author.

Note: this data set is relatively large. Due to some quirks of the shell, the entire result set gets pulled into the browser on find(), so if you want to see the document schema, we recommend either using db.posts.findOne(), db.posts.find().limit(1), or that you plan on waiting for a bit after you hit enter. We also recommend that the last phase of your aggregation pipeline is {$limit: 1} (or some single-digit number)

Solution:

Run the following query and you will get the answers.

db.posts.aggregate([
    { $unwind: "$comments" },
    { $group: { _id: "$comments.author", count: { $sum: 1 } } },
    { $sort: { count: -1 } },
    { $limit: 1 }
])
hw5.1answer

The solution to HOMEWORK 4.3 M101JS: MongoDB for Node.js Developers

HOMEWORK: HOMEWORK 4.3 Solution to HOMEWORK 4.3 M101JS: MongoDB for Node.js Developers

NOTE there is a bug (TOOLS-939) affecting some versions of mongoimport and mongorestore that causes mongoimport -d blog -c posts < posts.json to fail. As a workaround, you can usemongoimport -d blog -c posts < posts.json --batchSize 1.If you have any difficulty using MongoProc, here are 2 video lectures showing how to set it up.

You will need to download one of the following versions of the MongoProc client, which will verify on your local machine (port 8082) that the signup and login pages of the blog work properly.

Download MongoProc

Making the Blog fast to get started, please download hw4-3.zip from the Download Handout link and unpack the file to your computer. This assignment requires Mongo 2.2 or above.

In this homework assignment, you will be adding some indexes to the post-collection to make the blog fast.

We have provided the full code for the blog application and you don’t need to make any changes, or even run the blog. But you can, for fun.

We are also providing a patriotic (if you are an American) data set for the blog. There are 1000 entries with lots of comments and tags. You must load this dataset to complete the problem.

# from the mongo shell
use blog
db.posts.drop()
# from the a mac or PC terminal window
mongoimport -d blog -c posts < posts.json

The blog has been enhanced so that it can also display the top 10 most recent posts by tag. There are hyperlinks from the post tags to the page that displays the 10 most recent blog entries for that tag. (run the blog and it will be obvious)

Your assignment is to make the following blog pages fast:

  • The blog home page
  • The page that displays blog posts by tag (http://localhost:8082/tag/whatever)
  • The page that displays a blog entry by permalink (http://localhost:8082/post/permalink)

By fast, we mean that indexes should be in place to satisfy these queries such that we only need to scan the number of documents we are going to return.

To figure out what queries you need to optimize, you can read the code in posts.js and see what queries it is doing to return the data needed for the relevant pages. Isolate those queries and use explain to explore.

Once you have added the indexes to make those pages fast, just validate your work with MongoProc. Correct You have used 1 of 3 submissions.


Solutions:
Run the following queries one by one and submit it.

db.posts.ensureIndex({ date : -1})
db.posts.find({date : -1}).limit(10).explain()
db.posts.ensureIndex({ tags : 1, date : -1})
db.posts.find({tags : 'vietnam'}).sort({ date : -1}).explain()
db.posts.ensureIndex({ permalink : 1})
db.posts.find({permalink: "xnafqemtzzcyyzjdegkj"}).explain()
hw4.3answer

The solution to HOMEWORK 4.1 M101JS: MongoDB for Node.js Developers

The solution to HOMEWORK 4.1 M101JS: MongoDB FOR NODE.JS DEVELOPERS

Suppose you have a collection with the following indexes:

> db.products.getIndexes()
[
	{
		"v" : 1,
		"key" : {
			"_id" : 1
		},
		"ns" : "store.products",
		"name" : "_id_"
	},
	{
		"v" : 1,
		"key" : {
			"sku" : 1
		},
                "unique" : true,
		"ns" : "store.products",
		"name" : "sku_1"
	},
	{
		"v" : 1,
		"key" : {
			"price" : -1
		},
		"ns" : "store.products",
		"name" : "price_-1"
	},
	{
		"v" : 1,
		"key" : {
			"description" : 1
		},
		"ns" : "store.products",
		"name" : "description_1"
	},
	{
		"v" : 1,
		"key" : {
			"category" : 1,
			"brand" : 1
		},
		"ns" : "store.products",
		"name" : "category_1_brand_1"
	},
	{
		"v" : 1,
		"key" : {
			"reviews.author" : 1
		},
		"ns" : "store.products",
		"name" : "reviews.author_1"
	}

Which of the following queries can utilize at least one index to find all matching documents or to sort? Check all that apply.

hw4.1answer

Solutions:
db.products.find( { ‘brand’ : “GE” } ).sort( { price : 1 } )
db.products.find( { $and : [ { price : { $gt : 30 } },{ price : { $lt : 50 } } ] } ).sort( { brand : 1 } )  

I have submitted those two answers and found it to be correct.
Let me know if you have any problems.

Final: Question 6 Solution M101JS: MongoDB for Node.js Developers

Final: Question 6

Suppose you have a collection of students of the following form:

{
	"_id" : ObjectId("50c598f582094fb5f92efb96"),
	"first_name" : "John",
	"last_name" : "Doe",
	"date_of_admission" : ISODate("2010-02-21T05:00:00Z"),
	"residence_hall" : "Fairweather",
	"has_car" : true,
	"student_id" : "2348023902",
	"current_classes" : [
		"His343",
		"Math234",
		"Phy123",
		"Art232"
	]
}

Now suppose that basic inserts into the collection, which only include the last name, first name, and student_id, are too slow (we can’t do enough of them per second from our program). What could potentially improve the speed of inserts? Check all that apply.

Solution: I selected as in the image, please let me know if there are any correct answer.

final_exam_question_6

Final: Question 4 Solution M101JS: MongoDB for Node.js Developers

Final: Question 4

Enhancing the Blog to support viewers liking certain comments
In this problem, you will be enhancing the blog project to support users liking certain comments and the like counts showing up in the permalink page. Start by downloading Final4.zip and posts.json from the Download Handout link and loading up the blog dataset posts.json. The user interface has already been implemented for you. It’s not fancy. The /post URL shows the like counts next to each comment and displays a Like button that you can click on. Like button POSTS to the /like URL on the blog, makes the necessary changes to the database state (you are implementing this), and then redirect the browser back to the permalink page.

This full round trip and redisplay of the entire web page is not how you would implement liking in a modern web app, but it makes it easier for us to reason about, so we will go with it.

Your job is to search the code for the string “TODO: Final exam question – Increment the number of likes” and make any necessary changes. You can choose whatever schema you want, but you should note that the entry_template makes some assumptions about how the like value will be encoded and if you go with a different convention than it assumes, you will need to make some adjustments.

The validation script does not look at the database. It looks at the blog.

The validation script, final4-validate.js, will fetch your blog, go to the first post’s permalink page and attempt to increment the vote count. You run it as follows:

node final4-validate.js

Remember that the blog needs to be running as well as Mongo. The validation script takes some options if you want to run outside of the localhost.
After you have gotten it working, enter the validation string below.Solution: VQ3jedFjG5VmElLTYKqS   How do I achieve the result?

  • Open blog.js file and find following lines: // TODO: Final exam question – Increment the number of likes callback(Error(“incrementLikes NYI”), null);
  • Replace above lines with following lines var selector = {}; selector[‘comments.’ + comment_ordinal + ‘.num_likes’] = 1; posts.update({‘permalink’: permalink}, {‘$inc’: selector}, function(err, numModified) { if (err) return callback(err, null); callback(err, numModified); }); //callback(Error(“incrementLikes NYI”), null);
  • Now check it by running blog with “node app.js” and go to blog’s detail and click like button
  • Run validation by command line “node final4-validate.js” Trying to fetch blog homepage for url http://localhost:3000/ Trying to grab the number of likes for url http://localhost:3000/post/mxwnnnqaflufnqwlekfd Trying to increment the number of likes for post: /post/mxwnnnqaflufnqwlekfd Trying to grab the number of likes for url http://localhost:3000/post/mxwnnnqaflufnqwlekfd Successfully clicked like Blog validated successfully! Your validation code is: VQ3jedFjG5VmElLTYKqS
final_exam_question_4
  • Validation code that I found is VQ3jedFjG5VmElLTYKqS

Answer may vary for you so please verify for yourself.

Thanks

Final: Question 3 Solution M101JS: MongoDB for Node.js Developers

Final: Question 3

In this problem, you will update a document in the Enron dataset to illustrate your mastery of updating documents from the shell.

Please add the email address “mrpotatohead@mongodb.com” to the list of addresses in the “headers. To” array for the document with “headers.Message-ID” of “<8147308.1075851042335.JavaMail.evans@thyme>”

After you have completed that task, please download final3.zip from the Download Handout link and run final3-validate.js to get the validation code and put it in the box below without any extra spaces. The validation script assumes that it is connecting to a simple mongo instance on the standard port on the localhost.

Solution: vOnRg05kwcqyEFSve96R  

How to achieve it?

  • Extract the downloaded handout
  • In the first command prompt, go to the Final3 folder where you will see final3-validate.js and package.json files.
  • Now run “npm install”
  • Now open your mongo shell with mongod in second command prompt and again in third command prompt mongo
  • Run command “show databases” and see whether Enron is there or not if install from final question 2 nor run query “use enron”
  • Run the following query:
    db.messages.update({“headers.Message-ID”:”<8147308.1075851042335.JavaMail.evans@thyme>”}, {$addToSet: {“headers.To”: “mrpotatohead@mongodb.com”}}, {multi: 1})
  • Now run the command “node final3-validate.js”  in first command prompt
  • You will see something like below:

    Welcome to the Final Exam Q3 Checker. My job is to make sure you correctly updated the document
    Final Exam Q3 Validated successfully!
    Your validation code is: vOnRg05kwcqyEFSve96R
  • Thus my answer is “vOnRg05kwcqyEFSve96R”
  • It may differ to yours so please confirm before submitting.

Thanks

Final: Question 2 Solution M101JS: MongoDB for Node.js Developers

Final: Question 2

Please use the Enron dataset you imported for the previous problem. For this question, you will use the aggregation framework to figure out pairs of people that tend to communicate a lot. To do this, you will need to unwind the To list for each message.

This problem is a little tricky because a recipient may appear more than once in the To list for a message. You will need to fix that in a stage of the aggregation before doing your grouping and counting of (sender, recipient) pairs.

Which pair of people have the greatest number of messages in the dataset?

Solution:   Query to run as per the question is below as per my understanding:

db.messages.aggregate([
	{$project: {
		from: "$headers.From",
		to: "$headers.To"
	}},
	{$unwind: "$to"},
	{$project: {
		pair: {
			from: "$from",
			to: "$to"
		},
		count: {$add: [1]}
	}},
	{$group: {
		_id: "$pair",
		count: {$sum: 1}
	}},
	{$sort: {
		count: -1
	}},
	{$limit: 2},
	{$skip: 1}
])

Results that I found is below:

{ "_id" : { "from" : "susan.mara@enron.com", "to" : "richard.shapiro@enron.com" }, "count" : 974 }
final_exam_question_and-answer-2

Let me know if you guys find extra so that we can discuss it.

Thanks

The solution Homework 3.3 M101JS: MongoDB for Node.js Developers

The solution homework 3.3 M101JS: MongoDB for Node.js Developers

Making your blog accept comments

In this homework, you will add code to your blog so that it accepts comments. Download and unpack the files for this homework from the Download Handout link. You will be using the same code as you downloaded for homework 3.2, along with the changes you made.

We have removed parts of the code that uses the Node.js driver to query MongoDB from posts.js and marked the area where you need to work for HW 3.3 with “hw3.3 TODO”.

In a terminal:

Linux/Mac:

cd blog/ 
grep -rn "hw3.3 TODO" *

Windows:

cd blog/ 
find /n "hw3.3 TODO" *

You should not need to touch any other code. The database call that you are going to add will add a new comment to a given post.

This assignment has fairly little code, but it’s a little more subtle than the previous assignment because you are going to be manipulating an array within the Mongo document. For the sake of clarity, here is a document out of the posts collection from a working project that also has comments.

{
"_id" : ObjectId("513d396da0ee6e58987bae74"),
"author" : "andrew",
"body" : "Representatives from the planet Mars announced today that the planet would adopt MongoDB as a planetary standard. Head Martian Flipblip said that MongoDB was the perfect tool to store the diversity of life that exists on Mars.",
"comments" : [
{
"author" : "Larry Ellison",
"body" : "While I am deeply disappointed that Mars won't be standardizing on a relational database, I understand their desire to adopt a more modern technology for the red planet.",
"email" : "larry@oracle.com"
},
{
"author" : "Salvatore Sanfilippo",
"body" : "This make no sense to me. Redis would have worked fine."
}
],
"date" : ISODate("2013-03-11T01:54:53.692Z"),
"permalink" : "martians_to_use_mongodb",
"tags" : [
"martians",
"seti",
"nosql",
"worlddomination"
],
"title" : "Martians to use MongoDB"
}

As a reminder, to run your blog, go into the blog directory and type:

npm install
node app.js

Note that you add comments in this blog from the blog post detail page, which appears at

http://localhost:8082/post/post_slug

where post_slug is the permalink. For the sake of eliminating doubt, the permalink for the example blog post above is

http://localhost:8082/post/martians_to_use_mongodb

Ok, now it’s time to validate you got it all working.

From the top of this page, there was one additional program that should have been downloaded:mongoProc.

With it, you can test your code and look at the Feedback section. When it says “user creation successful” and “user login successful”, you can Turn in your assignment.

Solution:

Open blog/user.js and paste following codes or make changes near hw3.3

/* The PostsDAO must be constructed with a connected database object */
function PostsDAO(db) {
    "use strict";

    /* If this constructor is called without the "new" operator, "this" points
     * to the global object. Log a warning and call it correctly. */
    if (false === (this instanceof PostsDAO)) {
        console.log('Warning: PostsDAO constructor called without "new" operator');
        return new PostsDAO(db);
    }

    var posts = db.collection("posts");

    this.insertEntry = function (title, body, tags, author, callback) {
        "use strict";
        console.log("inserting blog entry" + title + body);

        // fix up the permalink to not include whitespace
        var permalink = title.replace( /\s/g, '_' );
        permalink = permalink.replace( /\W/g, '' );

        // Build a new post
        var post = {"title": title,
                "author": author,
                "body": body,
                "permalink":permalink,
                "tags": tags,
                "comments": [],
                "date": new Date()}

        // now insert the post
        // hw3.2 TODO

        //Solution:
        //callback(Error("insertEntry NYI"), null);
        posts.insert(post,function(err,result){
            if(!err){
                console.log("Post inserted " + result[0].permalink);
                return callback(null, result[0].permalink);
            }
            return callback(err, null);
        });
    }

    this.getPosts = function(num, callback) {
        "use strict";

        posts.find().sort('date', -1).limit(num).toArray(function(err, items) {
            "use strict";
            if (err) return callback(err, null);
            console.log("Found " + items.length + " posts");
            callback(err, items);
        });
    }

    this.getPostsByTag = function(tag, num, callback) {
        "use strict";

        posts.find({ tags : tag }).sort('date', -1).limit(num).toArray(function(err, items) {
            "use strict";

            if (err) return callback(err, null);

            console.log("Found " + items.length + " posts");

            callback(err, items);
        });
    }

    this.getPostByPermalink = function(permalink, callback) {
        "use strict";
        posts.findOne({'permalink': permalink}, function(err, post) {
            "use strict";

            if (err) return callback(err, null);

            callback(err, post);
        });
    }

    this.addComment = function(permalink, name, email, body, callback) {
        "use strict";

        var comment = {'author': name, 'body': body}

        if (email != "") {
            comment['email'] = email
        }

        // hw3.3 TODO
        //callback(Error("addComment NYI"), null);
        var query = { "permalink" : permalink };
        var operator = { '$push' : { 'comments' : comment } };
        posts.update(query, operator, function(err, updated){
            "use strict"
            if(err)
                return callback(err, null);
            //console.log("Comment: " + comment.body + " inserted in post: " + permalink );
            console.log("Comment: " + updated);
            return callback(null, updated);
        });
    }
}

module.exports.PostsDAO = PostsDAO;

The solution Homework 3.2 M101JS: MongoDB for Node.js Developers

Making your blog accept posts

In this homework, you will be enhancing the blog project to insert entries into the posts collection. After this, the blog will have basic functionality. It will allow you to add blog posts with a title, body, and tags and have it be added to the posts collection properly.

We have provided the code that creates users and allows you to log in (the assignment from last week). Download and unpack the files for this homework from the Download Handout link.

We have removed parts of the code that uses the Node.js driver to query MongoDB from posts.js and marked the area where you need to work for hw3.2 with “hw3.2 TODO”.

In a terminal:

Linux/Mac:

cd blog/ 
grep -rn "hw3.2 TODO" *

Windows:

cd blog/ 
find /n "hw3.2 TODO" *

You should not need to touch any other code. The database call that you are going to add will insert a new post into the posts collection. Here is an example of a valid blog post:

> db.posts.find().pretty()
{
"_id" : ObjectId("513d396da0ee6e58987bae74"),
"title" : "Martians to use MongoDB",
"author" : "andrew",
"body" : "Representatives from the planet Mars announced today that the planet would adopt MongoDB as a planetary standard. Head Martian Flipblip said that MongoDB was the perfect tool to store the diversity of life that exists on Mars.",
"permalink" : "martians_to_use_mongodb",
"tags" : [
"martians",
"seti",
"nosql",
"worlddomination"
],
"comments" : [ ],
"date" : ISODate("2013-03-11T01:54:53.692Z")
}

As a reminder, to run your blog, go into the blog directory and type:

npm install
node app.js

To play with the blog you can navigate to the following URLs:

http://localhost:8082/
http://localhost:8082/signup
http://localhost:8082/login
http://localhost:8082/newpost

Ok, now it’s time to validate you got it all working.

From the top of this page, there was one additional program that should have been downloaded:mongoProc.

With it, you can test your code and look at the Feedback section. When it says “user creation successful” and “user login successful”, you can Turn in your assignment.


Solution:

Open blog/posts.js and paste following codes or make changes near hw3.2

/* The PostsDAO must be constructed with a connected database object */
function PostsDAO(db) {
    "use strict";

    /* If this constructor is called without the "new" operator, "this" points
     * to the global object. Log a warning and call it correctly. */
    if (false === (this instanceof PostsDAO)) {
        console.log('Warning: PostsDAO constructor called without "new" operator');
        return new PostsDAO(db);
    }

    var posts = db.collection("posts");

    this.insertEntry = function (title, body, tags, author, callback) {
        "use strict";
        console.log("inserting blog entry" + title + body);

        // fix up the permalink to not include whitespace
        var permalink = title.replace( /\s/g, '_' );
        permalink = permalink.replace( /\W/g, '' );

        // Build a new post
        var post = {"title": title,
                "author": author,
                "body": body,
                "permalink":permalink,
                "tags": tags,
                "comments": [],
                "date": new Date()}

        // now insert the post
        // hw3.2 TODO

        //Solution:
        //callback(Error("insertEntry NYI"), null);
        posts.insert(post,function(err,result){ if(!err){ console.log("Post inserted " + result[0].permalink); return callback(null, result[0].permalink); } return callback(err, null); });}

    this.getPosts = function(num, callback) {
        "use strict";

        posts.find().sort('date', -1).limit(num).toArray(function(err, items) {
            "use strict";
            if (err) return callback(err, null);
            console.log("Found " + items.length + " posts");
            callback(err, items);
        });
    }

    this.getPostsByTag = function(tag, num, callback) {
        "use strict";

        posts.find({ tags : tag }).sort('date', -1).limit(num).toArray(function(err, items) {
            "use strict";

            if (err) return callback(err, null);

            console.log("Found " + items.length + " posts");

            callback(err, items);
        });
    }

    this.getPostByPermalink = function(permalink, callback) {
        "use strict";
        posts.findOne({'permalink': permalink}, function(err, post) {
            "use strict";

            if (err) return callback(err, null);

            callback(err, post);
        });
    }

    this.addComment = function(permalink, name, email, body, callback) {
        "use strict";

        var comment = {'author': name, 'body': body}

        if (email != "") {
            comment['email'] = email
        }

        // hw3.3 TODO
        //callback(Error("addComment NYI"), null);
        var query = { "permalink" : permalink };
        var operator = { '$push' : { 'comments' : comment } };
        posts.update(query, operator, function(err, updated){
            "use strict"
            if(err)
                return callback(err, null);
            //console.log("Comment: " + comment.body + " inserted in post: " + permalink );
            console.log("Comment: " + updated);
            return callback(null, updated);
        });
    }
}

module.exports.PostsDAO = PostsDAO;

Top 30 Drupal 8 modules to use in 2019 SEO, Workflow, Securities and others

Following are the list of Drupal 8 modules that we find must-have modules for 2019, by which site will be SEO friendly, most of the securities are covered, easy to write codes, easy to debug, easy administration and many more. The list of required modules are:

  1. Paragraphs
    Better than Field collections module
    Site Builders — to make things cleaner so that you can give more editing power to your end-users
    https://www.drupal.org/project/paragraphs
  2. Bootstrap Paragraphs Types
    This Drupal module creates a suite of Paragraph bundles to allow content creators to harness the power of the Bootstrap framework for functionality and layout.
    https://bp.jimbir.ch
    https://www.drupal.org/project/bootstrap_paragraphs
  3. Display Suite
    Instead of Panels
    https://www.drupal.org/project/ds
  4. admin_toolbar
    Useful administration menu
    https://www.drupal.org/project/admin_toolbar
  5. Dropzonejs
    Functionality like “Media” in D7
    https://www.drupal.org/project/dropzonejs
  6. Embed
    Used in many fields
    https://www.drupal.org/project/embed
  7. Token
    Token module
    https://www.drupal.org/project/token
  8. Entity
    Entity
    https://www.drupal.org/project/entity
  9. entity_browser
    For Media Files
    https://drupal.org/project/entity_browser
  10. entity_reference_revisions
    Entity Reference Revisions
    https://www.drupal.org/project/entity_browser
  11. file_browser
    Media files popup
    https://www.drupal.org/project/file_browser
  12. file_entity
    File Entity
    https://www.drupal.org/project/file_entity
  13. Shortcode
    Shortcodes
    https://www.drupal.org/project/shortcode
  14. Ctools
    Chaos tools
    https://www.drupal.org/project/ctools
  15. inline_entity_form
    Inline Entity Form
    https://www.drupal.org/project/inline_entity_form
  16. entity_reference_revisions
    Inline Reference Revisions
    https://www.drupal.org/project/entity_reference_revisions
  17. entity_embed
    Entity Embed
    https://www.drupal.org/project/entity_embed
  18. Libraries
    Libraries
    https://www.drupal.org/project/libraries
  19. state_machine
    State Machine
    https://www.drupal.org/project/state_machine
  20. Webform
    WebForm
    https://www.drupal.org/project/webform
  21. tb_megamenu
    Mega Menu
    https://www.drupal.org/project/tb_megamenu
  22. Checklistapi
    simple interface for modules to create fillable, persistent checklists that track progress with completion times and users. https://www.drupal.org/project/checklistapi
  23. Better Exposed Filters
    Works with Views Filters
    Better Exposed Filters gives you greater control over the rendering of exposed filters. https://www.drupal.org/project/better_exposed_filtersSEO Modules:
  24. Pathauto
    Pathauto module automatically generates URL/path aliases for various kinds of content
    https://www.drupal.org/project/pathauto
  25. seo_checklist
    SEO Checklist module
    https://www.drupal.org/project/seo_checklist
  26. Robots txt
    Generates the robots.txt file dynamically and gives you the chance to edit it
    https://www.drupal.org/project/robotstxt
  27. Metatag
    Allows you to automatically provide structured metadata
    https://www.drupal.org/project/metatag
  28. Hreflang
    In Drupal 8, the core Content Translation module adds href lang tags only to translated entity pages.
    https://www.drupal.org/project/hreflang
  29. XML sitemap
    Creates a sitemap that conforms to the sitemaps.org specification
    https://www.drupal.org/project/xmlsitemap
  30. Security
    login_security
    limit the number of invalid login attempts before blocking accounts, or deny access by IP address, temporarily or permanently.
    https://www.drupal.org/project/login_security
  31. Security Kit
    SecKit provides Drupal with various security-hardening options. This lets you mitigate the risks of exploitation of different web application vulnerabilities.
    https://www.drupal.org/project/seckit
  32. Security Review
    Security Review module automates testing for many of the easy-to-make mistakes that render your site insecure. https://www.drupal.org/project/security_review
  33. Coder
    Coder checks your Drupal code against coding standards and other best practices.
    https://www.drupal.org/project/coder
  34. Captcha
    challenge-response test most often placed within web forms to determine whether the user is human.
    https://www.drupal.org/project/captcha
  35. Honeypot
    Honeypot uses both the honeypot and timestamp methods of deterring spam bots from completing forms on your Drupal site https://www.drupal.org/project/honeypot
  36. Encryption
    Needed for market and other modules
    https://www.drupal.org/project/encryption
  37. Workflow
    This module allows you to create arbitrary Workflows, and assign them to Entities.
    https://www.drupal.org/project/workflow

Let us know if you have your favorite modules if you have any. Check how you can set up PHP development environment with VSCode and let us know if you have other extensions.

Internship final report sample, Introduction, SWOT analysis, and recommendation

In this internship final report sample, we are showing you the full report, with a background of the study, objectives of the study, Limitations of the Study, Selection Method of Data Collection and the whole report body.

CHAPTER 1

Introduction

1.1 Background of the study

The internship program has become the bridge for those who want to enter to corporate level from the college life, through an internship I got to know the real working environment which was very much different from my course study.

The internship has developed a kind of confidence in me that now I can do something different from new employees and I can work as an employee. The main things I learned from the internship are the value of time and the importance of punctuality and rules and regulations that we have to follow as an employee.

1.2 Objectives of the study

The general objective of this report is to partially fulfill the requirements for the degree of BCIS. However, the specific objectives are as follows:

  • To find the use of Websites in today’s society.
  • To develop the Management Skills, Personality, and Teamwork.
  • To develop interpersonal skills, conceptual as well as technical skills.
  • Tips and techniques to design and program websites.
  • The technique to earn online.

1.4 Limitations of the Study:

Major limitations of internship report are as follows:

  • Lack of proper research and detailed information about the company and its operating activities.
  • The time frame to perform an internship was short.
  • Lack of knowledge to run programs and software used by DP Sign.
  • Object-oriented based programming and use of different programming languages in DP Sign stopped me to learn more.

1.5 Selection Method of Data Collection

There are two major approaches to gathering information in my internship about the situation, person, problems or phenomenon and software in DP Sign.

  • Internal information
  • External Information

This information was collected with the help of both primary and secondary resources.

  1. Primary Data: They are collected by me on the concerned topic, which is original. While studying I have come across sources such as direct interviews with the supervisor, opinion of the different employees, informal talks with the employees, etc.
  2. Secondary Data: They are collected by me on the basis of the study of networking in organizations. For preparing this report on networking and data communication I have collected information through Nepal Bank, internet, books, teachers, and some previous records.

CHAPTER 2

Report Body

2.1 Introduction of DP Sign

D.P. Sign

  1. stands for Digital
  2. stands for Printed

The sign stands for different kinds of signs.

Registered Name:                   D.P. Sign

Address:                                  New Baneshwore, Shankhamool-125/28, KTM.

Phone:                                     01-4783309

Website:                                  https://webocreation.com

E-mail:                                     webocreation.com@gmail.com

DP SIGN is a global IT services company providing IT consulting, technology and outsourcing services. Using our enhanced global delivery model, innovative platforming approach and industry expertise, we provide cost‐effective services that enable our clients to use IT to enhance business performance, accelerate time‐to‐market, increase productivity and improve customer service.

DP SIGN provides value to its customers through innovation, accomplishment, trust, and long‐term relationships through its unique service portfolio and expertise.

DP SIGN brings quality services and products to its customers on time and at the most competitive prices. DP SIGN has very strong software engineering processes for software design and development activities. These strengths enable DP SIGN to smoothly adapt to the rapid enhancements in the technological domain while maintaining constant focus on the ever-changing business needs of its clients. With the vision of becoming the best IT service provider of the nation, DP SIGN has been a trailblazer in various domains of software engineering in Nepal.

Embedded system programming, Quality assurance techniques and process-oriented approach towards the design and development are those where DP SIGN has become a pioneer in the local context. Again, sustained quality delivery on time, post‐delivery services, corporate culture, documented knowledge acquisition, and continuous learning environments are the critical success factors of DP SIGN to achieve its vision.

2.2 Corporate Goal of the Company

The three pillars on which the DP Sign has its corporate structure are:

  1. Continuous improvement
  2. Customer’s satisfaction
  3. Quality of product and system

All these pillars are the pillars of the quality system which the organization owns in order to satisfy its customers. Continuous improvement means the process of quality is not still at a certain point, it continuously moving towards the improvement and can’t be still to some location, and the sole objective of this continuous improvement is to satisfy the customer’s need by giving the customer the quality products.

2.3 Mission Statement of the company

“Our mission is to offer advanced, convenient, and money-saving digitally printing things in Monitors or papers with the implementation of distinctive ideas and expertise. Our foundation of survival is based on providing valued clients a convenient and affordable source for digitalizing the world“.

In a clear sense, our motto is to be “A strategic partner of our clients, not a mere vendor.”

2.4 D.P. Sign’s spirit is infused into every component

D.P. Sign doesn’t simply just make and sell products; we are also deeply concerned with a number of issues, such as quality products, quick service, after-sale services and what type of services would be ideal for the clients. This enables us to refine existing work procedures and technologies. Every work is done and processed with the clients in our minds.

2.5 Services

DP SIGN offers a broad range of printing, IT consulting, custom programming services and online earning training. We have significant experience satisfying the most special technical needs of our customers. We understand the importance of a balanced technical design. We apply the appropriate level of technology to each project, keeping smaller projects simple and larger projects robust.

Our clients represent a broad cross‐section of businesses. We are very proud of the relationships we have built, and we have earned them through listening, learning, and communicating with our clients.

The categories below summarize our most common tasks.

2.5.1 Web Development

  • Web Services
  • Content Management
  • E‐business solution (CMS, E‐auction, E‐catalogs, etc)
  • Search Engine optimization
  • E‐commerce and portals
  • E‐Learning Management System

2.5.2 Web-based application design and development

  • Business workflow management
  • CRM
  • MIS

2.5.3 Generic/custom software solutions (in different platforms/domains)

  • Auto
  • Pharmaceuticals
  • Mortgage

2.5.4 Embedded software solutions

2.5.5 Online Earning Training

2.6 Engagement Models

2.6.1. Fixed price turnkey model

This model is applicable for projects where requirement specifications and timelines are clearly defined and frozen. This helps clients if they have a fixed budget for development and are clear about their requirements. We work with our client to define expected deliverables to determine a mutually agreed fixed price.

2.6.2. Per resource model

This model offers clients the flexibility to alter requirement specification, team size and timeline of projects based on market trends and feedback. This model suits best for most of the projects due to a software development project’s inherent need for altering specifications throughout the development life cycle. The client pays a monthly fee per resource (development, QA or management).

2.6.3. Offshore model

Our core expertise lies in establishing Offshore Development Centers for its clients. Through this model we serve our clients with highly experienced professionals with varied skill sets, resources, flexibility and time & cost‐to‐market advantages, allowing them to enjoy the long term gains of offshore outsourcing. DP SIGN operates as an extension to clients’ existing software engineering business. The secret of its success can be attributed to the fact that this model gives an opportunity to the client to make direct communication with DP SIGN through the onsite center and at the same time gives them the chance of enjoying the benefits of offshore development. Round the clock development is seamlessly done with this model. In this model, the client pays an offshore center on a per month basis.

2.7 Delivery Model

A proper combination of synthesis motivates every engagement, enabling us to deliver technology solutions that give our clients a decisive competitive advantage. The client can decide among one of the following delivery models

  • Full offshore development
  • Full Onsite development with our developers and QA resource deployed at the client’s site
  • Hybrid model when the majority of the team is offshore and the few members are onsite to help gather business requirements and help in deliverables.

Above mentioned models cater to the different requirements of clients like augmenting their development or QA teams, forming a new and complete project team, getting architects and designers for new technology development. However, more onsite involvement increases the total cost of development. DP SIGN management team works with the client to help them choose the best model that fits into their business requirements.

2.8 Process and Standards

The following standards summarize the commitment of DP SIGN towards the international best practices.

2.8.1 Project management standards

At DP SIGN, we believe that project management is the key to the success of any project, more so for IT projects. We closely follow the PMBOK as set by the Project Management Institute (PMI) standards.

2.8.2 CMMI: The process improvement initiatives

We have initiated the development of process standards in‐house with the implementation of CMMI (Capability Maturity Model Integration). This process improvement approach will provide our organization with the essential elements of effective processes. CMMI can be used to:

  • guide process improvement across a project or throughout an entire organization
  • integrate traditionally separate organizational functions
  • set process improvement priorities and goals

Processes being the pivot of the realization of products/services, DP SIGN ensures that every pertinent activity comports with the defined processes. The following sequence features the processes that are executed during the entire development lifecycle

2.8.3.1. The offshore team-building process

This process primarily focuses on the team-building approach and deals with both onshore and offshore development centers. The following phases and activities summarize this process

Phase: Project team creation

Activities:

  • Defining and signing off the scope agreement
  • Identification of key team members for the project
  • Signing off the related agreements

Phase: Onsite to Offsite knowledge transition

Activities:

  • Offshore Team Building Process
  • Project Outsourcing Process
  • Project Management Process

Phase: Offshore process definition

Activities:

  • Tailoring standard methodology to comply with the client’s requirements

Phase: Offshore simulation

Activities:

  • Simulation of a client’s environment at an offshore development center
  • Review and comply with service level agreements
  • Establishment of required infrastructure
  • Setting up the offshore team structure
  • Training the ODC team for client’s requirements

Phase: Offshore project execution

Activities:

  • Define and review the different phases of the project
  • Establishment of project plans for each phase
  • Execution of the project in a phase‐wise manner in adherence to the corresponding project plan.
  • “Project outsourcing process” continues hereafter.
  • Review of the project plan as and when required

Phase: Review of ODC team and infrastructure

Activities:

  • Establishment of metrics to identify the client’s satisfaction level in
  • Terms of team structure/communication, infrastructure, and any other relevant issues
  • Implementation of feedback from the client

2.8.3.2 Project outsourcing process

This process comprises of the following phases, activities, and deliverables related to the project execution.

Phase: Analysis of requirements

Activities:

  • Requirement capture
  • Describing the old architecture
  • Identification of critical issues
  • Identification/assessment of client risk and mitigation measures
  • Establishment of project scope

Phase: Creation of Design Documents

Activities:

  • Development of system design schema
  • Creation of detailed project plan

Deliverables:

  • Design documents
  • Hardware and system architecture

Phase: Development/Unit testing

Activities:

  • Modules coding
  • Unit testing
  • Test case design and documentation

Deliverables:

  • Test Plan
  • Issue tracking log
  • Code walkthrough review
  • System test cases

Phase: System Integration/Testing

Activities:

  • Execution of test cases
  • Fixing bugs
  • Change request review
  • Update test cases
  • Update design documents

Deliverables:

  • Test plan and Test cases
  • Test log sheet
  • Approved changed request
  • Updated design documents

Phase: Acceptance/ release to production

Activities:

  • Verification of acceptance criteria
  • Fixing bugs
  • Review of Change request
  • User training
  • Development of user manuals

Deliverables:

  • Sign off on acceptance
  • Detail QA reports
  • User manual
  • Installation/release notes

2.8.3.3 Project management process

Phase: Initial Project Plan

Activities:

  • Estimation of effort and development time with the support of lead developer and QA manager
  • Resource allocation for each task

Phase: Project tracking/visibility (recurring step till the delivery of project)

Activities:

  • Preparation of weekly status by the project manager (For some clients there will be daily Scrum).
  • Discussion on project status with the client in the defined period
  • Readjustment of resource as required
  • Updating the project plan in accordance with the change request issued by the client

Phase: Project plan for the next phase (recurring step till the delivery of project)

Activities:

  • Generation of the project plan for the next phase
  • Tracking of next phase

2.9 Domain Profile

DP SIGN offers its skills/services in two different segments i.e. System level programming and application-level programming.

2.9.1 System Level Programming

DP SIGN has been doing various projects related to embedded system development. It is basically developing systems in C. We have good expertise in working on the Linux platform as well as on Windows. Our work involves working in different protocols related to the network. We have also been working with media formats like MPEG4. Following is the summary of Tools and Technology we use at DP SIGN at the System Programming unit:

System Programming unitSoftware
Development IDEEclipse CDT
Compilersgcc and g++
Debugging and Profiling toolsgdb, GPROF, Strace, Mtrace, Linux trace toolkit
Testing ToolsCUnit, CGreen
Bug Tracking SystemBugzilla
Version Control SystemSubversion
PlatformMontavista Linux 4.1, Red Hat Enterprise Linux
Protocols for NetworkReal-Time Streaming Protocol(RTSP), Session Description Protocol(SDP), Real‐Time Transport   Protocol(RTP), UDP, TCP
Media FormatMpeg4

Tab: 2.1 System units and its Software

2.9.2 Application Level Programming

We provide specialized services to cater to the specific web requirements that are by practice defined by the client. In this context, we concentrate more on the implementation approach for the customer defined requirements coupled with the right technologies to deliver a high-quality web solution. Our expertise is distributed but not limited to the client-server solution, thin client-based application, and web-based application development. We have been working with our clients mostly in the area of E‐commerce solutions, CRM solutions, and third party web integration.

Here is a list of technologies and platforms that we use to bring you the best, most efficient and cost‐effective solution.

TechnologyPlatform
Operating SystemLinux, Windows2000/ XP, WinNT
Web Page Design Scripting TechnologyAJAX, HTML/DHTML, XML, JavaScript, PHP, Perl / CGI, .NET, ASP
DatabaseMysql, MSSQL, MS Access, Oracle
Graphics Design ToolsAdobe Photoshop, Adobe Illustrator, CorelDraw, GNOME Imaging Software
Web Development ToolsUltradev Dreamweaver, DeamweaverMX, PHP Editor, Microsoft Visual Basics, Microsoft Visual Studio.NET, Macromedia Flash
Programming LanguagesPHP, ASP, VB, C/C++, C#
Testing ToolsTest Track, Track+, Cpp‐Unit, N‐Unit, Win Runner, Load Runner
Bug Tracking SystemBugzilla
Version Control System:Subversion, CVS
Content Management SystemJoomla, Mambo, Droople, PHPNuke
EcommerceOscommerce, Creloaded, Zencart, XCart, OscMax
Design and PM toolsMS‐Project, MS‐Visio, Rational Rose

Tab: 2.2 List of technology with a platform

2.10 Competitive Advantage of DP Sign

DP SIGN maintains working hours with Time‐match/Time‐overlap facility. This way, our Japanese and American clients get complete visibility and interaction with the development team. DP SIGN possesses a strong team of architects, DBA, Programmers, QA personals and support staff with graduation in computer science from reputed universities. Not only that, it maintains formal tie‐up with reputed universities for the interrupted supply of trained human resource

  • Compelling cost arbitrage advantage (better than India and the Philippines)
  • Reduces time‐to‐market and provides a frequent delivery and support model
  • In‐house Training facility for the project members depending upon the nature of the project
  • Developers possess sound oral and written communication in English and are further trained by the American Language Center
  • Defined Software process with state of the art tools/techniques involved in all phases of complete life‐cycle

2.11 Physical Infrastructure

  • 8000 sq feet Software Development Centre capable of accommodating more than 100 resources (Can be extended as and when required)
  • 24 hour guarded premises (guarded by internationally acclaimed “Group 4 Falk) at the heart of Kathmandu.
  • Multi‐skilled resource pool
  • A strong team of architects/DBA/Programmers/QA personals and support staff
  • Networked workstations running Linux, embedded Linux and Windows NT/2000/XP
  • Dedicated server room with high security and standard network and server equipment
  • Hardware firewall (Sonic Wall) protected development environment
  • Uninterrupted Power Supply
  • Ergonomically designed workspaces
  • Backup placed at multiple locations (in multiple buildings)
  • Multiple leases and broad‐band internet connection extendable to 1Mbps of connectivity.
  • Dedicated conference room

2.12 Organizational Hierarchy Chart

organizational chart

Fig-2.1: Organization Structure

2.13 Number of employees

PrintingWeb site and online earnings
Technician-                  12   J. Technician-              8 Designer-                     2 Printer Operator-         2 Administration-           4 Marketing-                  3 Designer 7 Database designer 3 Marketing 10 Customer Relation (Callers) 10 Data Entry 14 Teachers   Programmers 6+   10

Tab: 2.3 Number of employees

2.14 Introduction of Departments I have worked

2.14.2 Website development Department

Web site development in DP Sign is done in two ways, either it is built in-house or it is bought.

2.14.2.1 In-House Development

            2.14.2.1.1 Design the application architecture

Application architecture defines the technologies to be used by one or more or all information systems in terms of their data, processes, interfaces and network components. In DP Sign database like MySQL, SQL, Oracle, MySQL, etc were in use, I use MySQL. They use .net and PHP as the programming language and I prefer to use PHP language in website programming.

The physical data flow diagram is used to establish physical processes and location issues.

            2.14.2.1.2 Design the database(s)

The purpose of this task is to prepare technical design specifications for a database that will be adaptable to future requirements and expansion. System analyst also participates in the database modeling and the system designers are responsible for the completion of the activity as databases are shared resource.

The database schema is also structured.

            2.14.2.1.3 Design the system interface

In this, the system designer works with the system to develop input, output and dialogue specifications. For output, the terminal screen or the printed papers were used and for input, the data capture method is used.

System designers are responsible for the task and can use GUI (graphical user interface). For this, I have used Macromedia Dreamweaver and Phpmyadmin.

2.14.2.1.4 Package Design Specifications

The final design task involves packaging all the specifications from the previous design tasks into a set of specifications that will guide the computer programmer’s activities during the construction phase of the systems development methodology.

            2.14.2.1.5 Update the Project Plan

Revaluation of the project is done. The project manager in conjunction with system owners and the entire team facilitates this tas

2.14.2.2 Buy Solution

If the DP Sign is willing to buy the website from the outsider then following is done:

2.14.2.2.1 Identify and Research Specific Products

In this task, we research technical alternatives. The requirements specify the functionality, features and critical performance parameters for our new website. Research and information are collected from internal standards, information services, trade newspapers, and periodicals offer. System Designer with the help of a project manager is responsible to complete the task

            2.14.2.2.2 Solicit Proposals or Quotes from Vendors

The solicitation task requires the preparation of RFQ (Request for Quotations) and RFP (Request for proposal). Request for Quotations is a formal document that communicates business, technical and support requirements for the application software package to a single vendor that has been determined as being able to supply that application package and services.

Request for proposal is also a formal document that communicates business, technical and support requirements for an application software package to vendors that may wish to compete for the sale of that application package and services,

2.14.2.2.3 Select and recommend the best vendor.

The purpose of this task is to validate requests for proposals and/or quotations received from vendors. Designer involves in data and database administrators, network administrators and application administrators. The key outputs of this task are those vendor proposals that proved to be validated proposals or claims and others whose claims were not validated.

            2.14.2.2.4 Contract with the awarded vendor to obtain the product

Having ranked the vendor proposals the next activity usually includes presenting a recommendation to management for final approval. Salesmanship and communication skills are important. The purpose of this activity is to negotiate a contract with the vendor who supplied the winning proposal and to debrief the vendors that submitted losing proposals. A contract will be produced to the winning vendors.

2.14.2 Online Earning Department

2.14.2.1 Online Earning Training:

In this training, we were taught how we can earn money online without investing money. This training lasts for 15 days for normal computer operator and for advance the time period is less. Online earning can be done by different means in this global market. Some of them are:

2.14.2.1.1 Online earning through blogging:

Blog or Weblog is nothing but a personal website where you can express your personal views, ideas, feelings, etc. There are many sites such as Blogger, Typepad, Soul cast who provide blog services. You can earn online through Adsense. Here you have to place Adsense ads on your blog. You will earn whenever viewers click on the ads.

2.14.2.1.2 Online earning through Ad Typing:

Online earning by Ad typing is another unique job opportunity. All you have to need to post Ads on various Free Ad sites. There are tons of sites that provide Ad Typing jobs. Typeinternational is a very popular site. Typeinternational is providing nine different homes based earnings opportunities.

2.14.2.1.3 Online earning through Medical Transcription:

Medical Transcription is the fastest-growing field in health care. It is the process where you need accurately and swiftly transcribes medical records dictated by doctors and others, including medical history and physical reports, X-ray reports and pathology reports, etc. Good English pronunciation, typing skill and acquaintance with medical terminology are the basic need of the job. You can earn lots of money through Medical Transcription.

2.14.2.1.4 Online earning through the filling of Market Survey Forms:

Filling of Market Survey Forms is another popular online job opportunity. Thousands of consumer products are fighting to get a pie of the billions of consumers worldwide. You can earn by simply filling up of forms regarding a particular product of a company.

2.14.2.1.5 Top Pay per click (PPC) Business Sites

Some of the sites that pay per click are: Name of sitesName of sites
www.google.com/adsense
www.yahoo.com/overtrue
www.publisher.yahoo.com
www.search123.com
www.lycos.com
www.click-share.com
www.income-machine.com
www.bidvertiser.com
www.typeinternational.com
www.daily-payday.com

Tab: 2.4 Collection of PPC sites

2.14.2.1.6 Earn money by blog posting:

We are paid from these sites on posting our comments or posts. Some of the sites are:

SNName of sites
1  
2
3
4
5
www.technorati.com
www.digg.com
www.netscape.com
www.reddit.com
www.tailrank.com


2.15 Some of our major Clients:

SNName of ClientSNName of Client
1.Laxmi Bank2.Siddhartha Bank
3.Jyoti Bikash Bank4.Kathmandu Medical College
5.Advanced Imaging & Diagnostic Centre6.Beijing Duck Restaurant
7.Institute of Professional Excellence8.Bok Choy
9.Oral Dental Home10.Glamour
11.South Asia Commodities & Brokerage12Cosmopolitan
13Axis Broking Solution  

Tab: 2.5 List of major clients

2.16 Business Volume:

DP Sign was founded in 2007. So it is a newly entered company in the corporate world. But its sales figures are outstanding. The company has sales of over 10 million Nepali rupees in the financial year 2008-2009.

The overall sales volume is generated from three areas domestic, commercial and International. The prices of the products of the company range from Rs. 350(Domestic) to Rs. 1.5 million.

The Major portion of the revenue of DP Sign is Flex Printing, Online earning training, and website designing and programming.

The partition of sales to total sales graph is given below:

business volume of webocreation

Fig: 2.2 Business volume of DP Sign

According to the figures company’s 52% sales of Revenue is earned through website designing and programming, 11% of revenue is from online training, and 15% and 22% from online training and other sources respectively

Although DP Sign was founded in 2007 it remained successful in getting its share in the market in a very short time (2007-2009) and through it’s loyal, devoted, professional and hardworking management it is expected that the company will expand its sales to about 4 million during 2010-2011.

Besides that company has also earned impressive goodwill in the market through its quality services.

2.17 Products offered by DP Sign

2.17.1 Printing Services

SNMaterial TypeRateRemarks
1Printed backlit with box & light with fitting at site199.00p.sq.ft.Without vat
2Vinyl sticker cutting & pasting on backlit with box & light with fitting at site221.00p.sq.ft.Without vat
3Flex/ Frame & fitting at site38.00p.sq.ft.Without vat
4Mimaki Soljet print Normal vinyl50.00p.sq.ft.Without Vat
5Soljet vinyl print & pasting on  forex sheet95.00p.sq.ft.Without vat

Tab: 2.6 Printing product of DP Sign

2.17.2 Web services

SNWeb Service TypeRate
1.Domain RegistrationRs. 1000+
2.Web spaceAs per space requirement
3..np domain registrationFree
4.Website design and developmentAs per design and requirement
5.Open  Source CMS (joomla, word press, durpal, umbraco, tomato, mambo, hippo, nuxeo)As per design and requirement
6.Search Engine Optimization(twitter marketing, social marketing, facebook marketing, affiliation program)As per the design and requirement
7.Online Earning TrainingRs 1500+

Tab: 2.7 Web services providing by DP Sign

2.18 Time Frame of Internship

timeline internship project

Fig: 2.3 Time frame representation in Gantt chart

Chapter 3

Analysis

3.1 Strategic Business Unit’s Analysis

DP Sign has different strategic business units and management as DP Sign is well aware that how to use these units strategically. In order to fully analyze the business units of DP Sign that are web development, online earning training, and printing, I have used different analysis which not only gives the true picture of the company’s different unit but it also gives the depiction of the overall industry analysis in which company is currently working. There are four types of Analysis which I have performed in order to explore the working of the organization.

3.1.1Web Development department Analysis

3.1.2 Online Earning department Analysis

3.1.3 PEST Analysis

3.1.4 SWOT Analysis

3.1.5 Five S’s of Workplace Organization.

All these analyses have been performed by getting data from real-time industry situation as well as the organization. Research articles, news articles, internship reports, manuals are being used in order to effectively analyze the working of the organization. The historical data for the analysis has been taken or a maximum of 5-7 years back while current data until 2009 has been used.

3.1.1 Web Development department Analysis

Present status of Website development in DP Sign

Though the Website development in Nepal is developing and every year many companies are being registered but a professional person is lacking in our country. DP Sign is also facing the same problem so it is hiring professionals from other countries. Like other companies in Nepal, DP Sign is also lacking local customers as our country is lacking the knowledge to use technology and computers.

But the use of technology and website in Nepal is also increasing thus DP Sign also has to focus on the local customers. Even personal websites are taking a market so DP Sign should focus on this site by reducing the costs but increase the volume of sale which ultimately leads to an increase in the profit.

Schools, colleges, institutions, shopping center are increasing thus DP Sign should focus in this sector also. One of the lackings of the DP Sign is that it lacks advertisement.

DP Sign has to face competition from:

  • Strong local market
  • New entrants in the international market
  • Competition from existing customers
  • Economic recession

From a strong local market, the competition has been arising from a few companies. These companies are well renowned not only locally but also internationally. In these local companies, DP Sign has been facing competition at website development. At locally and internationally DP Sign is facing the competition as the number of companies is increasing. As economic recession is a period of recession and throughout the global world is suffering from the economic crisis, in such a scenario, there is an effect on website development also.

In the context of DP Sign, the market capture internationally is very low in the context of other website company so the company should focus on maintaining international customers.

3.1.2 Online Earning department Analysis

In the context of DP Sign Online Earning, training generates about 15% of the Revenue. So this is also one of the most important departments of DP Sign but DP Sign is not focusing on it.

The Internet in Nepal is increasing. Some businesses and people are eager to earn online by sitting at home and being bosses of themselves so online earning has also a potential market to earn.

But DP Sign is not focusing on this sector and I suggest them to make a website to unite their team and the exchange of click can be done so that everyone can get benefits.

3.1.3 PEST Analysis

PEST analysis is the analysis which we tend to perform in order to analyze the external as well as the internal environment in which the organization is currently working. PEST analysis revolves around four things.

  • Political Environment
  • Economic Environment
  • Social Environment
  • Technological Environment

Political Factors

There are many factors, which entice the organization with the Government.

  • Tax policy
  • Quota
  • Cyber Laws
  • Online transactions law
  • Labor policy

Economic Environment

Recession, devaluation of the currency and the policy of the government have an adverse effect on the economy.

Social Factors

Due to an increase in the education and technology sector, the educational power of the customers is increasing at a speedy rate. They are becoming aware of the brands and the latest technology. Due to this, they are demanding a high technological website at a low price in the international market.

Technological Factors

Technology is also a key sector in terms of the external environment for website development. The technology is working as a substitute for manpower with more efficiency. DP Sign has to focus on following

  • Error reduction
  • Less labor cost

DP Sign should have to focus on maintaining the harmony between the factors of PEST analysis so that it can progress in its life cycle.

3.1.4 SWOT Analysis

Performing SWOT analysis involves the generation and recording of the strengths, weaknesses, opportunities, and threats in relation to a particular task or objective.

Strengths

  • Strong and Prominent International Image
  • Latest Technology
  • Competitive Workforce
  • Creativity and Innovation
  • Management Information System
  • ISO Certified Company
  • Locally Working(Expenses in NRs but earning in Dollars)

Weaknesses

  • Individualism
  • Low Production capacity
  • No opportunity for Training and Development
  • Lack of teamwork
  • Lack of continuity of Policies
  • Too much Specialized Jobs

Opportunities

  • New Emerging Markets
  • Bright Local Market
  • New Cyber laws and Policies
  • Implementation of technology and websites in government sector

Threats

  • Non-supportive government
  • Government Policies
  • Growing Competition
  • Political uncertainties

3.1.5 5 S’s of Workplace Organization.

I recommend the DP Sign to follow the 5 S’s techniques to promote workplace organization, ensure adherence to standards and foster the spirit of continues improvement.

  • The 1st S: Sort

To get rid of unwanted items, things should be in the right place so that it can be gain ant the right time. Decide what is needed to be kept, and what is not needed and to be discarded.

  • The 2nd S: Set Location and Limits

To locate a specific place for specific items of a specific quantity, where needed. Determine addresses for materials and equipment. Put them in that place and keep them there.

  • The 3rd S: Shine and Sweep

Shine and sweep mean to use cleaning to identify abnormalities and areas for improvement. Clean the workplace and at the same time visually sweep for abnormalities or out or control conditions.

  • The 4th S: Standardize

To consolidate the first 3 S’s by establishing standard procedures. Determine the best work practices and find ways of ensuring everyone does it the same “best” way.

  • The 5th S: Sustain

Sustain improvements and make further improvements by encouraging effective use of the ‘Check-Act-Plan-Do’ cycles. Keep all current improvements in place and develop an environment for future improvements.

3.2 What I would improve or do differently if I had the opportunity:

  • I could be better organized, especially with regards to the paperwork required for capital purchases and expense reporting for business travel.
  • I could learn to manage my time better, planning parallel execution of some short-duration activities when long-running operational activities are occurring.
  • This would reduce personal idle time when waiting for long-duration activities to complete.

Chapter 4

Recommendations

There are few things which can be implemented and improvements can be made.

  1. There must be a career development opportunity for the employees so that they can work energetically in the organization as there is high turnover due to lack of information in the related sector.
  2. Remuneration System must help in motivation as a better remuneration package can do more in this highly competitive environment.
  3. The work environment at DP Sign is such that it does not encourage the staff to work effectively and I recommend that jobs should be such that the worker really enjoys what they are really doing.
  4. The staff as an individual is good but as a team is very bad, this thing should be overcome by promoting the team-based culture by the company.
  5. What I feel while working in DP Sign was that the top management is taking HRD as an expense rather than an investment as in the future the real capital or asset will be in the form of the workforce rather than monetary capital.
  6. In DP Sign there are uses of advance technology so the employee outside the world cannot cope easily with the internal environment so the socialization process should perform while recruiting the new employee.
  7. I suggest DP Sign to make a website to unite their online earning team and the exchange of click can be done so that everyone can get benefits.
  8. There are problems in web hosting services as the mail is sent to the scams sector so it should be maintained and the reliable up to date time is 98% only so the web hosting services should be changed.

Chapter 5

Conclusion

During my internship training at DP Sign, I have learned a lot and my vision and practical exposure have broadened very much from my three months internship. In the website development and online earning sector, DP Sign is contributing a lot and is using modern technology to take the company to new horizons and is moving as per its slogan “A strategic partner of our clients, not a mere vendor”.

I have carried out my responsibilities and duties in the field of website designing and online earning by which I am capable to design and program website and started to earn online.

After doing my internship it becomes clear to me that books are only dealing with the ideal situation while in the real world it is not so, and you have to face many problems particularly in programming and designing field in which you are dealing with codes and the behavior of software to handle them. Besides this, I just came across with abstract and the concepts developed with thorough study able to make a vague mental image while working in a real scenario.

Further, I also concluded that 100 percent concentration, full care, analytical, descriptive, knowledge and communication skills are the key prerequisites for working in the real world.

Anyhow, precisely speaking this internship of three months is a memorable period for me during which I availed the opportunity to flourish my communication skills, polish my capabilities and abilities, upgrade my knowledge about the latest technology and application tools and broaden my vision and exposure towards practical life.

This internship proves better for me in two way, on one side it helps to develop a personality in me which exactly match the professionalism in web development and secondly it helps to strengthen my decision about the specialization in web technology as my personality exactly match the nature of the job.

Chapter 6

PROGRAM WORKPLACE RELATIONSHIP

This project has proved to be very useful in putting the theoretical knowledge learned in college into practical knowledge. Through this project, the various subjects learned by us such as the principle of management, system analysis, and design, C programming, web technologies, Object-oriented languages, organizational behavior, and other programming have been put into use practically.

The subject matter of system analysis and design and other programming languages and web technologies learned theoretically were put into use in this project. Planning of the assignment, locating information sources, collecting and analyzing data, presenting charts and tables, programming, website designing and programming, understanding system and software as well as re-engineering them, etc. which are already studied by us in books was very helpful in putting it into practical experiences and preparing this project. The theoretical knowledge of web technologies, programming languages and managerial courses were helpful in carrying out the SWOT analysis, PEST analysis, and other analysis.

This program is very helpful in putting our theoretical knowledge into practical knowledge. All the subject matter studied by us in the previous semester was put into use while carrying out this project. Studying books is a different thing and going through all the things studied is different. This program has provided a platform to undergo real-life problems and experiences of business which will be fruitful to us in the coming years.

Bibliography

  1. Book References:
  1. Annual Report of DP Sign
  2. Operating Manuals of the DP Sign
  3. Publications of the DP Sign
  4. System Analysis and Design Methods, McGraw-Hill Companies
  5. Internship Report Management Information System, Prentice Hall
  6. Software Project Management by E.M. Bennaton Second Edition.
  7. Website References:
  1. dpsign.com.np
  2. google.com and other search engines to search
  3. scribd.com
  4. esnipps.com
  5. wikipedia.com (The encyclopedia)

APPENDICES

project delivery organization for large project

Fig: Sample Project Delivery Organization for a large project in DP Sign

in house development process internship

Fig: In-House Development process in DP SIGN

Like this, we are complete the full internship report to submit to the college.