A modern full-stack application built with React (TypeScript) for the frontend and Node.js/Express (TypeScript) for the backend.
Check out the live demo of the application: Entertainment Web App
The project is organized into two main directories:
client: Contains the React frontend code.server: Contains the Node.js/Express backend code.
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (Make sure it's installed and running)
- Navigate to the server directory:
cd server- Install dependencies:
npm install- Create a
.envfile in the server directory:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/your_database
JWT_SECRET=your_jwt_secret- Start the development server:
npm run devThe server will start on http://localhost:5000
- Navigate to the client directory:
cd client- Install dependencies:
npm install- Create a
.envfile in the client directory:
REACT_APP_API_URL=http://localhost:5000/api- Start the development server:
npm startThe client will start on http://localhost:3000
npm run dev: Starts the development server with hot-reloadnpm run build: Builds the TypeScript codenpm start: Runs the built code in productionnpm run lint: Runs ESLintnpm test: Runs tests
npm start: Starts the development servernpm test: Runs testsnpm run build: Builds the app for productionnpm run eject: Ejects from Create React App
- React 19
- TypeScript
- React Router v7
- TailwindCSS
- React Query
- Axios
- Zustand (State Management)
- React Hook Form
- Node.js
- Express
- TypeScript
- MongoDB/Mongoose
- JWT Authentication
- Winston (Logging)
- Vitest(Testing)
- Class Validator
- Helmet (Security)
server/
├── src/
│ ├── controllers/ # Request handlers
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ ├── config/ # Configuration files
│ ├── utils/ # Utility functions
│ ├── tests/ # Tests
│ ├── types/ # TypeScript types
│ └── index.ts # App entry pointclient/
├── src/
│ ├── components/ # Reusable components
│ ├── context/ # Context providers
│ ├── pages/ # Page components
│ ├── hooks/ # Custom hooks
│ ├── services/ # API services
│ ├── utils/ # Utility functions
│ ├── types/ # TypeScript types
│ ├── store/ # State management
│ └── App.tsx # Root component
├── public/ # Static assets
├── .env # Environment variables
├── .gitignore # Git ignore rules
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the ISC License.