Features • Tech Stack • Getting Started • Contributing • Support Us
A modern, interactive lofi music streaming platform built with React.js and TypeScript. Experience a soothing and relaxing ambiance with our carefully curated lofi music collection. Perfect for studying, working, or just relaxing.
|
|
|
|
|
View Dependencies
{
"react": "^18.2.0",
"react-dom": "^18.2.0",
"typescript": "^5.1.6",
"@reduxjs/toolkit": "^1.9.5",
"react-redux": "^8.1.1",
"react-router-dom": "^6.2.1"
}{
"@mui/material": "^5.2.7",
"@emotion/react": "^11.7.1",
"@emotion/styled": "^11.6.0",
"bootstrap": "^5.1.3",
"react-bootstrap": "^2.1.0"
}{
"react-audio-player": "^0.17.0",
"react-player": "^2.9.0"
}
|
|
# Clone the repository
git clone https://github.com/HuzaifaKhanDeveloper/lofi-music.git
# Navigate to project directory
cd lofi-music
# Install dependencies
npm install --legacy-peer-deps
# Start development server
npm startVisit http://localhost:3005 to see the application.
src/
├── assets/ # Static assets (images, videos)
├── components/ # Reusable UI components
│ ├── ModifierBoard/ # Timer and controls
│ │ ├── index.tsx # Main component
│ │ ├── styles.scss # Component styles
│ │ └── types.ts # Type definitions
│ ├── RainToggleButton/ # Rain effect toggle
│ └── DarkLightSwitch/ # Theme switcher
├── constants/ # Application constants
├── data/ # Data files
├── layout/ # Layout components
├── pages/ # Page components
├── store/ # Redux store configuration
└── types/ # TypeScript type definitions
View Development Guidelines
- Each component should be in its own directory
- Include component-specific styles in a
styles.scssfile - Define types in a separate
types.tsfile - Use functional components with hooks
- Implement proper prop typing
- Use Redux Toolkit for global state
- Use local state for component-specific state
- Follow Redux best practices for actions and reducers
- Use TypeScript for type-safe state management
- Use SCSS for component-specific styles
- Follow BEM naming convention
- Use Material-UI and Bootstrap for base components
- Maintain consistent spacing and colors
- Use React.memo for expensive components
- Implement proper code splitting
- Optimize images and videos
- Use lazy loading where appropriate
- Write unit tests for components
- Test Redux actions and reducers
- Implement integration tests
- Use React Testing Library
We love your input! We want to make contributing to this project as easy and transparent as possible.
- 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
If you enjoy using this project and want to help it grow, consider supporting us!
Your support helps us keep improving and adding new features. Thank you!
|
|
This project is licensed under the MIT License - see the LICENSE file for details.
- Huzaifa Khan - Initial work - GitHub
- Inspired by various lofi music platforms
- Thanks to all contributors who have helped shape this project
- Special thanks to the open-source community for their amazing tools and libraries
- Thanks to the React and TypeScript communities for their excellent documentation