Sunday, October 27, 2019

Learn Project Management For Free from Top Universities and Organizations


There are huge resource online to learn about project management. Following is a short list of free project management learning resources over there in online that are very helpful for your study:

Edx:

Coursera:
 Udemy: 
Alison:
FutureLearn:

Youtube:

 

Wednesday, October 23, 2019

Introduction to Project Management: Definition of Project, Characteristics of Project

What is a Project? What are the characteristics of Project?

According to the Project Management Institute:
 "A project is a temporary endeavor undertaken to create a unique product, service, or result." 

Let's break down this definition into its components to understand further what a project is (and what it is not) and try to understand project characteristics:

It is a temporary endeavor:- what does that mean? It means that it isn't endless; it has a start date and an end date. Projects do not go on indefinitely. Activities that go on indefinitely are typically known as processes or operations. So how do we understand when a project ends?

The project reaches to end when one or more of the following condition(s) met:
  • The project’s objectives have been achieved;
  • The objectives will not or cannot be met;
  • Funding is exhausted or no longer available for allocation to the project;
  • The need for the project no longer exists (e.g., the customer no longer wants the project completed, a change in strategy or priority ends the project, the organizational management provides direction to end the project);
  • The human or physical resources are no longer available; or
  • The project is terminated for legal cause or convenience.
It creates a unique product, service, or result:- which we call a deliverable. Unique means that it is unlike any other project. It may be similar to other projects but it is never identical to one. This is what distinguishes a project from a process. A project is unique; a process is repeatable and strives for consistency, standardization, and no deviation from a standard. Deliverable means that it has a tangible or intangible outcome: i.e. a new software product, a new drug, a new building, a merger of two companies, improved customer service, etc. The outcome may be a product, goods, or a service.

Fulfillment of project objectives may produce one or more of the following deliverables:
  • A unique product that can be either a component of another item, an enhancement or correction to an item, or a new end item in itself (e.g., the correction of a defect in an end item);
  • A unique service or a capability to perform a service (e.g., a business function that supports production or distribution);
  • A unique result, such as an outcome or document (e.g., a research project that develops knowledge that can be used to determine whether a trend exists or a new process will benefit society); and
  • A unique combination of one or more products, services, or results (e.g., a software application, its associated documentation, and help desk services).

 ⇛ It drive change in the Organization:- From a business perspective, a project is aimed
at moving an organization from one state to another state in order to achieve a specific objective. The term Current State, Future State, and Transition State are used to describe change in organization.  
  • Current state: is the state of organization before the project begins.  
  • Future state: is the desired or resulted state where the organization will be driven by the project. 
  • Transition state: For large projects, if there are milestone deliverables, transition state refer to the state where organization reaches after each milestone is delivered.
It enables business value creation:- business value is the net quantifiable tangible, intangible, or both benefit to the stakeholders derived from a business endeavor. It is considered the return, in the form of elements such as time, money, goods, or intangibles in return for something exchanged.

Examples of tangible elements:
  • Monetary assets,
  • Stockholder equity,
  • Utility,
  • Fixtures,
  • Tools, and
  • Market share.
Examples of intangible elements:
  • Goodwill,
  • Brand recognition,
  • Public benefit,
  • Trademarks,
  • Strategic alignment, and
  • Reputation.

It initiated in some context:- projects are created in context of organizational factors by organizational leaders. Four fundamental categories of factors are there, which illustrates the context of initiating a project:
  • Meet regulatory, legal, or social requirements;
  • Satisfy stakeholder requests or needs;
  • Implement or change business or technological strategies; and
  • Create, improve, or fix products, processes, or services.

It has defined objectives:- The goals expected to be achieved. There can be technical goals (develop new technology), legal or political goals (to meet governmental regulations), and/or business goals (beating or eliminating competition). These objectives should be measurable.

It has scope:- All the work required to deliver the product or result and satisfy the objectives for which a project was undertaken at a level of quality expected by the customer. The scope includes all the deliverables required to meet the project objectives.

It has cot:- The planned cost of conducting the project; it includes human and physical resources.

It has Time/Schedule:- The planned time to complete the project, as well as the Milestones along the way. 


EXAMPLES OF PROJECTS:

  • Building a house
  • Developing a new pharmaceutical compound for market
  • Building a mobile application
  • Expanding a tour guide service
  • Developing a new product
  • Merging two organizations
  • Improving a business process within an organization
  • Improvement of a service (i.e. customer service, Six Sigma initiative)
  • Modifying a computer software program used in an organization
  • Conducting research to develop a new manufacturing process


EXAMPLES OF PROJECT OUTCOMES:

  • Pyramids of Giza,
  • Olympic games,
  • Great Wall of China,
  • Taj Mahal,
  • Publication of a children’s book,
  • Panama Canal,
  • Development of commercial jet airplanes,
    Polio vaccine,
  • Human beings landing on the moon,
  • Commercial software applications,
  • Portable devices to use the global positioning system (GPS), and
  • Placement of the International Space Station into Earth’s orbit.


Further reading on PMP:
  1. Project Management Life Cycle
  2. Project Management Certifications Questions with explanation.
  3. Free PMP Certification Questions



Tuesday, September 24, 2019

Tell Me About Yourself - How to Answer Best way






Tell Me About Yourself / introduce yourself / Tell me something about yourself / tell me about yourself interview answers - Best Tricks To Answer the very common interview question.

Introduction:

“Tell me about yourself”.

The first Question in any job interview. This could be the most difficult question and disqualify you if you are not prepared for it.


Alternative forms of the question:


The interviewer can also ask you same questions in different ways like:
  • Tell me something about yourself.
  • Can you tell me a little about yourself?
  • Briefly introduce yourself.
  • Please tell us about your background.
  • How would you describe yourself?

Asked in every interviews:

In every job interview it is universal that you will be asked the question:

“Tell me about yourself”.

Regardless of your industry, experience level or job type your interviewer will come up with the question, most frequently the first question of the interview. Since it’s often the first question to be asked in an interview, it’s your big chance to make a first impression.

This question is an opportunity for you to set the tone of the job interview and emphasize the points that you most want this potential employer to know about you.


Interviewer's Expectations and Perspectives:

So what your interviewer’s want to know by asking this question?
  • His ultimate goal for this interview is to find out enough about you to decide if you’re a good fit for the job opening. In most cases, he wants to like you.
  • Can you communicate comfortably?
  • How potential candidate you are for the job?
  • How your experience is pertinent to the job description you're interviewing?

Some Common Mistakes:

Now, let us talk about some common mistakes not to make while answering the question:
  1. Don’t recitate your resume: Many candidates; respond by launching into a recitation of their resume; from the very beginning. This can turn into a very long monologue; that is probably the least relevant experience.
     
  2. Avoid talking about personal details or life story: Avoid mentioning personal information such as marital status, children, political or religious affiliations, etc. These can be highly sensitive topics that might work against you as a candidate. No one is interest on it.
     
  3. Don’t be too modest: Many candidates; make the mistake of being too modest. They reply with a humble or vague introduction; that fails to clearly communicate their strongest qualifications.

How to prepare yourself:

Now let us see some tips to prepare yourself:
  • Your answer should be focused on your Top Qualities, Skills, Experiences, Achievements, Distinct Extra curricular activities.
  • Short (usually than 1 minute, prepare for 2 minutes).
  • Write down your answer and print it.
  • Practice the answer again and again.

How to Answer:

Your answer should have three components:
  1. Who You Are: Concisely summarizes diverse background. Your first sentence should be an introduction to who you are professionally, an overview statement that shows off your strengths and gives a little sense of your personality too.
  2. Expertise Highlights: The emphasis here is on experience, enthusiasm, and proof of performance. Don’t assume that the interviewer has closely read your resume and knows your qualifications. Use your elevator pitch to briefly highlight 2-4 points that you think make you stand out.
  3. Why You’re Here: Concise and positive. End by telling them you want the position and why.

Sample Good Answers:

An experienced HR Manager can answer, like:-

Well, Thank you for giving me the opportunity to introduce myself.

I’m an innovative HR manager with 10 years of experience leading and managing all aspects of the Human Resource functions, — from recruiting to training to benefits — for large enterprises that have multi-cultural and diversified environment.

I have spent the last six years developing my skills as a customer service manager for Telenor Inc. where I have won several performance awards and been promoted twice. I love managing teams and solving customer problems.

Although I love my current role, I feel I’m now ready for a more challenging assignment and this position really excites me
.”


An experienced software developer answers may be:

Thank you for giving me the opportunity.

Well, I have more than five years of experience as a technical project manager at CMMI Level 5 certified Software Development companies.

In my current position I led the development of machine learning enabled IoT based Predictive Healthcare Information Management System and implemented in Savar, Bangladesh to keep track of health record of around 5000 villagers. This project won multiple awards along with national ICT award 2020.

I’m a person who thrives in a fast-paced environment and like to work for Health development. So, right now, I’m looking for an opportunity to apply my technical experience and my creative problem solving skills at an innovative software company that implement innovation in Health.


Practicing your answer over and over will be the key to success.

Best of luck.

Friday, September 20, 2019

Top 50 HR Interview Questions


In HR interviews, you will face questions that are almost similar in all interviews that cover a set of areas that will help interviews to identify that you are the expected candidate and fit for the job. Here, we sorted out a list of top 50 HR Interview Questions that you will be frequently asked in interviews. You should practice and be prepared before you sit for the interview.

Questions:
  1. Tell me something about yourself.
  2. Why do you want to work in our company? Why are you interested in this job?
  3. Why should we hire you? Why you are suited for this job? Why you do you fit for the job? Why do you think you deserve this job?
  4. What is your role in your current position?
  5. What are your strengths?
  6. What are your weaknesses?
  7. Where do you want to see yourself within the next 3 years?
  8. What is our greatest achievement?
  9. Why are you leaving your current company?
  10. What is the top challenge you dealt in your current company?
  11. Who are competitors and partners of your current company?
  12. What is your current salary?
  13. What is your expected salary?
  14. Do you have any questions for us?
  15. What do you like about this company?
  16. Do you work well under pressure?
  17. How do you make important decisions?
  18. What is your leadership style? How do you manage?
  19. On a scale of 1 to 10 how would you rate yourself as a leader?
  20. Are you a team player?
  21. What your colleagues say about you?
  22. How do you resolve conflict between team members?
  23. Did you have any conflict with your reporting manager?
  24. How do you motivate team members?
  25. Are you good at dealing with change?
  26. Do you know anybody in our company?
  27. Has your work ever been criticized?
  28. What are your expectations from job?
  29. Why have you been unemployed for a long time?
  30. How long would you expect to work for us if hired?
  31. Do you consider yourself successful?
  32. What are the qualities of successful leader?
  33. Are you willing to travel?
  34. Are you willing to relocate?
  35. How is your country?How is Bangladesh/Uganda?
  36. What do you know about our country?
  37. Why do you want to come to our country?
  38. Do you have a driver's license?
  39. Do you have a plan for further education? (Masters/Phd)
  40. You don’t have any certifications yet. Why?
  41. You have already jumped jobs too many times, Why?
  42. If we call your current reporting manager, what will he say about you?
  43. What did you do last year for your development?
  44. What motivates you?
  45. Tell me about you dream job.
  46. What you have learned from mistakes on the job?
  47. Are you willing to work overtime?
  48. What are the most difficult decision to make?
  49. How do you deliver bad news to your team?
  50. How was your written and technical interview?
  51. How do you hear about his position?
  52. Describe a time when you had to listen to someone
  53. Tell me about a skill you recently acquired or improved
  54. Tell me three things about you, which are not found in your resume
  55. Provide an example of a goal that you successfully attained

Sunday, September 15, 2019

The Amazing Seychelles Islands paradise on earth from drone









The HD video shows the amazing islands country Seychelles which is know as paradise on earth from drone and sky. The Seychelles is an archipelago of 115 islands in the Indian Ocean, off East Africa. It's home to numerous beaches, coral reefs and nature reserves, as well as rare animals such as giant Aldabra tortoises. Mahé, a hub for visiting the other islands, is home to capital Victoria. It also has the mountain rainforests of Morne Seychellois National Park and beaches, including Beau Vallon and Anse Takamaka.

Seychelles is a member of the African Union, the Southern African Development Community, the Commonwealth of Nations, and the United Nations. After proclamation of independence from the United Kingdom in 1976, Seychelles has developed from a largely agricultural society to a market-based diversified economy, with agriculture being supplanted by rapidly rising service and public sectors as well as tourism.

The Seychelles’ pristine stretches of sand are regularly ranked among the most beautiful in the world. From aquatic adventures to lip-tingling Creole cuisine, local writer Glynn Burridge reveals six reasons to visit this tropical paradise.

The main island Mahé, has 65 beaches of its own. Topping the list are Anse Intendance, with its 2km strand and impressive breakers; laid-back Carana beach; Beau Vallon. God made the Seychelles with sailors in mind, and viewing these islands from the ocean is difficult to beat

Prince William and Kate Middleton’s choice of Seychelles for their honeymoon catapulted the islands to fame as the ultimate romantic getaway. With a wild, natural beauty and year-round tropical warmth, it’s difficult to imagine a more perfect destination for weddings, honeymoons, anniversaries or even an impromptu romantic break.

Most popular destinations in seychelles are:
Mahe, Sechelles
Praslin
La Digue
Victoria
Via Vallon
Grand Anse
Aldabra
Quatre Bornes

Watch the heaven on earth, Seychelles.

TravelEx channel shares travel videos of beautiful places in the world.

Please subscribe travelex channel for enjoying more interesting travel videos. If you like the video share with your friends.

Saturday, August 31, 2019

Free Project Management Professional (PMP) Certification Exam Questions Part 2



This question set is continuation of Free Project Management Professional (PMP) Certification Exam Questions


40. Defining the project and product requirements includes: (select all that apply) 

A. Documenting the requirements
B. Documenting requirement priorities
C. Input from only the most important Stakeholders
D. Only identifying the requirements for the end product/result/service
E. Traceability to the project objectives
F. Traceability to project deliverables

Ans: A, B, E, F

41. Identifying requirements is important because: (select all that apply) 

A. They are the basis from which the work is defined to deliver the project
B. We need to understand the most critical requirements
C. We need to be able to deliver all requirements that the Stakeholders want
D. We need to understand what to put in the Project Charter

Ans: A, B


42. The Project Scope Statement is an important project planning document because the Scope Statement: (select all that apply) 

A. Provides what will be delivered on the project
B. Provides what won't be delivered on the project
C. Provides the details of the financial scope of the project
D. Is more detailed than the Project Charter
E. Is only used by the project manager to understand what has to be delivered
F. Should never be changed once it is written
G. Aids in the control of the project scope during Execution

Ans: A,B,D, G


43. The project deliverables section of the Project Scope Statement includes: (select all that apply)
A. The final deliverables for the project correct
B. The deliverables needed to manage the project correct
C. The deliverables created during project planning correct
D. The deliverables created during project execution correct
E. The deliverables that will not be included in the project
F. The requirements for the project

Ans: A,B,C,D

44. Activity duration estimates are: (select all that apply)

A. Used to determine the project budget
B. Used to determine the project schedule correct
C. Related to the resources available for the project correct
D. The hours required to complete an activity

 Ans: B,C


45. Your team has estimated an activity to take 24 effort hours and 3 days in duration. You have one resource working on the activity. During the planning of the project, your Project Sponsor informs you that the resource you were expecting to use won't be available to you full time on the project. They will only be available for half of their time. 
What should you do with your estimate for the activity this resource is assigned to?
A. You don’t need to do anything because the activity can still be finished in 3 days.
B. You don’t need to do anything because the activity can still be finished in 24 effort hours.
C. You need to adjust the activity effort to 12 hours because the resource is only available for half of their time.
D. You need to adjust the activity duration to 6 days because the resource is only available for half of their time.
Ans: D








For training you can choose:

Wednesday, August 28, 2019

An Introduction to Asynchronous Programming. When and where to use Asynchronous Programming?


What is Asynchronous Programming?

When a computer is running a program, the operating system or the application allocates a group of resources; known as a thread; to run the application code.

In synchronous programming, all the code from on application is running on a single thread. Therefore, code has to execute synchronously which means code is executed in a one action at a time. One operation has to finish before the processor moves on to execute the next operation. That means if one operation is taking a long time, the program will freeze and stop waiting for it to finish before it moves to the next operation.

An asynchronous operation is an operation that runs on a separate thread that gets initiated from another thread. The thread that initiates an asynchronous operation does not need to wait for that operation to complete before it can continue. In that sense, resources can be allocated to other tasks that can be executed in the meantime.

Why use Asynchronous programming?

You might have already deduced this, asynchronous programming makes the best and most efficient utilization of the machine resources when it comes to having long running operations in an application. 

For a UI application, Asynchronous programming makes the application responsive because the UI thread is not blocked by a CPU or I/O heavy operation which makes it more interactive and user friendly. Asynchronous programming also takes advantage of parallel computing which is supported in most of today's machines. This helps programmers write parallel processing applications easily without having to write complicated code that is hard to maintain.

When to use Asynchronous Programming

As we mentioned, Asynchronous code is best used for long running operations. Those operations can be CPU bound or I/O bound operations. Examples of long running operations are:
  • I/O operations that include Network requests for data retrieval.
  • CPU heavy operations like scientific calculations using huge data sets.
  • I/O operations like disk access operations including reading and writing to disks.
If you have any I/O-bound needs (such as requesting data from a network or accessing a database), you'll want to utilize asynchronous programming so that your program UI does not freeze waiting for this operation to finish.

What applications are best candidates for asynchronous programming?

  • Desktop User Interface Applications, a desktop UI application is an application that is expected to be interactive, users should be able to interact and communicate with the various pieces of the application UI mostly at all times. Nothing is worse for an UI application than a frozen control that the user is unable to interact with because of a long running network operation like a web service call. The time spent waiting for information to travel across the network is blocking the UI resources and thus the application appears to be frozen or dead.

    Desktop / UI modern frameworks give special precedence to the thread that uses the UI. Async code is very important for these technologies to build better UI applications. Examples of UI technologies that use asynchronous programming are:
    • Windows Forms (WinForms)
    • Windows Presentation Foundation (WPF)
    • Universal Windows Platform (UWP)

  • Web Server Applications, a web server application does not deal with UI but often times, it needs to run remote database queries or run some calculations on large amounts of data to generate a data analysis report. Using Asynchronous programming for these tasks allows the server code to do the task efficiently specially that web servers are usually handling multiple requests from multiple clients at the same time. Asynchronous programming helps avoid situations where threads are simply waiting to do something while the rest of the application is getting overwhelmed by clients requests resulting in less than ideal performance as well as delayed responsiveness to clients requests.

Asynchronous Programming is not always the solution

There are problems that asynchronous code does not solve. There are also problems that Asynchronous code can cause. For example:
  1. Asynchronous code does not automatically improve performance. If a network task takes a certain amount of time, asynchronous code is not going to change that. In fact, there is some amount of (small) overhead for the framework managing the process. Rather, asynchronous code helps manage resources more efficiently.
  2. Using Asynchronous code imposes an overhead on the system. When threads are used, the system needs a way to manage them like thread saving, scheduling, listening, locking, resuming, ...etc. There are two types of overhead that exist when using threads, memory overhead which every thread reserves from a machine's virtual memory when initiated, and a scheduler overhead which is the way the operating system uses to manage choosing which thread should be executed on which CPU and when. These overheads can slow down the entire system if threads are excessively used.
  3. If you don't have a desktop / UI application, or your code is not network- or I/O-bound, you won't see much benefit.
  4. If your application is CPU-bound (it is slowing down because of heavy compute processes), multi-threading / task-based asynchrony is a better solution.


Tuesday, August 27, 2019

How to get Client IP from ASP.NET Web API HttpRequestMessage


Some times you will want to track the client who is calling your API and from which IP address the client made the call. Following method might help you to get client IP:

using System.Net.Http;
using System.ServiceModel.Channels;
using System.Web;
using System.Web.Http;


        private static string GetClientIp(HttpRequestMessage request)
        {
            if (request.Properties.ContainsKey("MS_HttpContext"))
            {
                return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress;
            }
            else if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))
            {
                RemoteEndpointMessageProperty prop = (RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name];
                return prop.Address;
            }
            else if (HttpContext.Current != null)
            {
                return HttpContext.Current.Request.UserHostAddress;
            }
            else
            {
                return null;
            }
        }

In case of calling from local machine it will return ::1 otherwise the client IP address.

Happy Learning

Monday, August 26, 2019

Create a new text file and write or append text to the file using C#


Each time the C# code block is called it creates a file with file name built from current system date. If it is call multiple times it creates the file at first call and in subsequent calls it appends the texts to the files existing content. When date changes, it creates a new file on first call and then appends text.

            string date = DateTime.Now.ToString("yyyy-MM-dd");
            string filename = date + ".txt";
            string file = HttpContext.Current.Server.MapPath("~/App_Data/" + filename);
            bool exists = File.Exists(file);
            if (!exists)
            {
                FileStream fs = File.Create(file);
                fs.Close();
            }

          using (StreamWriter writer = File.AppendText(file))
            {
                writer.WriteLine("=========Text Block=========");
                writer.WriteLine("Date Time: " + DateTime.Now.ToString());
                writer.WriteLine("This is repeating text for testing");
                writer.Close();
            }



Thursday, August 22, 2019

What is REST? What is RESTful Web API? What are the contraints of REST that makeup RESTful Web API?



What is REST (the Concept of REST)

Nowadays we hear about REST or RESTful everywhere in the Web development world but we rarely think about what REST actually is, and in fact there are a lot of misunderstandings around REST such as:
  • REST is an architectural pattern for web applications like MVC
  • REST is a protocol like SOAP
  • If a web API is built on HTTP then it's a RESTful web API
  • If a web API uses JSON then it's a RESTful web API   etc.
The Definition of REST

REST is the abbreviation of Representational State Transfer. By definition:
  • REST is an architectural style for distributed systems. Here we consider a distributed system to be either a single client/server application, or multiple applications communicating through a network.
  • REST is a set of constraints. Some of them apply to the architecture level design and others to the API level design. If a distributed system applies these constraints, we call it a RESTful distributed system. 

Here are the constraints that make up the REST architectural style: 

1. Client-Server - REST must be applied on a client-server system. If a system is not a client-server architecture, no matter how big/complex it is, it's impossible to apply REST architecture. 

2. Stateless - in REST architecture, the client uses a request to access the target resource on the server and the server uses a response to return the proper result back to client. Each request from any client contains all the information necessary for the server to interpret the request and take the necessary actions. The server won't cache any client or session related data. If needed, the client can cache the data for future requests. Note the following two points:
  • Usually a RESTful system is built on HTTP, and HTTP is stateless, which means HTTP doesn't break the the stateless constraint in REST. But if you are a web developer, you may be aware that we can use the session object to keep some state between the web server and web client.
  • Stateless means there is no session state kept on the server. While the state in Representational State Transfer is not the session state, it's the state of resources that are carried by the representation.
3. Cache - in order to improve network efficiency, the client (or other components) has the ability to cache the responses.

4. Uniform Interface - the emphasis on a uniform interface between components is the central feature that distinguishes the REST architectural style from other network-based styles. Actually, there are a lot of ways to unify the interfaces between web application components, but REST chooses the most natural way - to leverage HTTP methods. To achieve a uniform interface, there are some API level design constraints to follow:
  • Identification of resources
  • Manipulation of resources through representations
  • Self-descriptive messages
  • Hypermedia as the engine of application state (HATEOAS)

5. Layered System - to improve the scalability and reduce the dependency chaos of a large system, the best way is to organize components into different functional layers. Each layer has dedicated tasks, can share a cache, security, and load balancing.

6. Code on demand - REST allows client functionality to be extended by downloading and executing code in the form of applets or scripts. For example, there are some pre-implemented client side code snippets, such as JavaScript code, Flash content or Java Applets, stored on a server. The client can fetch these from the server and execute them to run the pre-defined logic. We consider this is an optional constraint because it's rarely seen in a web service system.

Applying REST Constraints
  • Roughly there are three generations of technology to build web APIs and expose the server side computing powers to clients across the web.
  • The first generation is known as Remote Procedure Call (RPC), such as Common Object Request Broker Architecture (CORBA).
  • The second generation is known as Web Services Description Language (WSDL) and Simple Object Access Protocol (SOAP) based technologies such as Windows Communication Foundation (WCF).
  • The third generation is a RESTful Web Service. Once we apply the constraints of REST architectural style correctly, when designing and implementing a web service, this web service becomes a RESTful Web Service. In daily communication, we still call those non-RESTful web services Web Service, and call RESTful Web Services RESTful Web API or just Web API.
There are a lot of technologies we can use to build RESTful Web APIs, such as ASP.NET Core, ASP.NET MVC, NodeJS, Spring MVC, etc.
When we apply the constraints of the REST architectural style, some of the constraints are necessary and others are optional. Here is a check list:
  1. Client-Server - as a web based system, this is, naturally, a MUST -have
  2. Stateless - MUST have
  3. Cache - nice to have, especially for large systems
  4. Uniform Interface - the central feature MUST-have
    • Identification of resources - MUST-have
    • Manipulation of resources through representations - MUST-have
    • Self-descriptive messages - MUST-have
    • Hypermedia as the engine of application state (HATEOAS) - nice to have
  5. Layered System - nice to have, especially for large systems
  6. Code on demand - optional

☺Happy Learning.