### Instruction:
Design a full-stack web application in TypeScript using React for frontend and Node.js/Express for backend, which allows users to create, share, and vote on polls, with data stored in a MongoDB database and real-time updates implemented using Socket.IO.

### Response:

To design a full-stack web application using TypeScript, React, Node.js/Express, MongoDB, and Socket.IO for creating, sharing, and voting on polls, follow these steps:

1. Set up the project structure

Create a new directory for your project and initialize it with npm.

```
mkdir poll-app
cd poll-app
npm init -y
```

2. Install dependencies

Install necessary dependencies for both frontend and backend development.

```
npm install typescript ts-node nodemon express socket.io mongodb react react-dom @types/react @types/react-dom @types/node @types/express @types/socket.io @types/mongodb
```

3. Configure TypeScript

Create a `tsconfig.json` file in the root of your project folder and add the following configuration:

```json
{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "jsx": "react",
    "outDir": "./dist",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}
```

4. Create source directories

Create `src` directories for both frontend and backend code.

```
mkdir src
cd src
mkdir client server
cd ..
```

5. Set up the Express server

Inside the `src/server` directory, create an `index.ts` file with the following content:

```typescript
import express from 'express';
import http from 'http';
import { Server } from 'socket.io';
import { MongoClient } from 'mongodb';

const app = express();
const server = http.createServer(app);
const io = new Server(server);

(async () => {
  const mongoClient = await MongoClient.connect('mongodb://localhost:27017');
  const db = mongoClient.db('poll-app');

  io.on('connection', (socket) => {
    // Handle events and database operations here
  });

  server.listen(3001, () => {
    console.log('Server listening on port 3001');
  });
})();
```

6. Set up the React frontend

Inside the `src/client` directory, create an `index.tsx` file with the following content:

```typescript
import React from 'react';
import ReactDOM from 'react-dom';

const App: React.FC = () => {
  return (
    <div>
      <h1>Poll App</h1>
    </div>
  );
};

ReactDOM.render(<App />, document.getElementById('root'));
```

7. Create a simple HTML template

Create an `index.html` file in the root of your project folder with the following content:

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Poll App</title>
</head>
<body>
  <div id="root"></div>
  <script src="/dist/client/index.js"></script>
</body>
</html>
```

8. Configure Nodemon

Create a `nodemon.json` file in the root of your project folder and add the following configuration:

```json
{
  "watch": ["src"],
  "ext": "ts",
  "ignore": ["src/client/*"],
  "exec": "ts-node ./src/server/index.ts"
}
```

9. Update package.json scripts

Add the following scripts to your `package.json` file:

```json
"scripts": {
  "start": "npm run build && npm run serve",
  "build": "tsc",
  "serve": "nodemon",
  "client": "parcel src/client/index.html"
},
```

10. Implement the application logic

Now that your project is set up, you can start implementing the application logic for creating, sharing, and voting on polls. This includes:

- Creating RESTful API routes in Express to handle poll creation, retrieval, and voting.
- Setting up Socket.IO events to broadcast real-time updates when a new vote is cast or a new poll is created.
- Designing React components for displaying and interacting with polls.
- Connecting the frontend to the backend using Axios or Fetch API.

11. Run the application

To run the application, open two terminal windows. In one window, run `npm run serve` to start the server. In the other window, run `npm run client` to start the development server for the frontend. Open your browser and navigate to `http://localhost:1234`.