Welcome to the Smart Home Automation Dashboard repository! This project aims to provide a comprehensive solution for managing and controlling various smart home devices from a centralized web application.
- User Authentication: Secure user authentication system using JSON Web Tokens (JWT).
- Access Token: A short lived session token.
- Refresh Token: A longer lifespan token assigned on logging in and is used to retrieve a new access token in the event of an outdated access token without the need for the user to renter their credentials.
- Dashboard Overview: View a summary of all connected smart devices and their current status.
- Device Control: Control individual devices remotely, including lights, thermostats, security cameras, and more.
- Data Visualization: Visualize historical data and analytics for energy consumption, temperature trends, and other relevant metrics.
- Responsive Design: Built with React and Tailwind CSS, ensuring compatibility with various screen sizes and devices.
- React: Frontend framework for building user interfaces.
- TypeScript: Typed superset of JavaScript for enhanced code quality and development experience.
- Tailwind CSS: Utility-first CSS framework for rapid UI development.
- MongoDB: NoSQL database for storing device configurations, user data, and historical analytics.
- JWT: JSON Web Tokens for secure authentication and authorization.
To get a local copy up and running follow these simple steps:
-
Clone the repository:
git clone https://github.com/WardZid/smart-home-dashboard.git
-
Install dependencies:
cd smart-home-dashboard npm install
-
Start the development server:
npm start
-
Access the application:
Open http://localhost:3000 in your browser.
To build the project for deployment, run:
npm run build
This command will generate a production-ready build in the docs
folder.
Contributions are welcome! If you'd like to contribute to this project, please follow these guidelines:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin feature/your-feature
). - Create a new Pull Request.