Your Daily Dose of Fun and Engagement
UniW is your ultimate interactive entertainment hub that offers daily mini-games, quizzes, challenges, and social interactions. Dive into a world of fun and engagement where you can compete, collaborate, and connect with friends and a global community.
- Features Highlight
- Tech Stack
- Getting Started
- ESLint Configuration
- Running the Tests
- Deployment
- Built With
- Contributing
- Versioning
- Authors
- License
- Acknowledgments
- Daily Mini-Games: New casual games every day to keep you entertained.
- Quizzes and Challenges: Test your knowledge and skills with daily quizzes and weekly challenges.
- Social Interactions: Share achievements, challenge friends, and join community discussions.
- Gamification and Rewards: Earn points, unlock badges, and get daily rewards for your participation.
- Personalized Content: Enjoy content tailored to your preferences and play history.
- HTML: For structuring the web pages.
- CSS: For styling and responsive design (using frameworks like Bootstrap or Tailwind CSS).
- JavaScript: For interactivity (using frameworks like React.js for dynamic UI and game rendering).
- Canvas API: For creating 2D game graphics.
- WebSockets: For real-time multiplayer games and chat functionality.
- Node.js and Express.js: For server-side logic and API endpoints.
- MongoDB: For storing user data, game scores, and social interactions.
- Redis: For session management and real-time features.
- Firebase: For real-time database and push notifications.
- Three.js: For any 3D game elements or advanced graphics.
- Workbox: For PWA features like offline capabilities and push notifications.
- OAuth: For secure user authentication and social media integration.
These instructions will help you get a copy of the project up and running on your local machine for development and testing purposes. See the Deployment section for notes on how to deploy the project on a live system.
Before running the project, ensure you have the following installed:
$ node -v # To check Node.js version
v14.17.0
$ git --version # To verify Git is installed
git version 2.30.0Follow these steps to set up the development environment:
$ git clone https://github.com/username/UniW.git
$ cd UniW$ npm installCreate a .env file in the root directory with the necessary configurations:
MONGODB_URI=mongodb://localhost:27017/uniw
PORT=3000
JWT_SECRET=yourSecretKey$ npm run devYou should now have a local copy of UniW running at http://localhost:3000.
To ensure code quality and maintain consistency, it's recommended to expand the ESLint configuration, especially for production applications. Follow these steps to configure ESLint with type-aware lint rules and React support:
Configure the top-level parserOptions to include your TypeScript configuration files:
// eslint.config.js or .eslintrc.js
export default tseslint.config({
languageOptions: {
// other options...
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
},
});Replace tseslint.configs.recommended with either tseslint.configs.recommendedTypeChecked or tseslint.configs.strictTypeChecked to enable type-aware linting.
export default tseslint.config({
// ...other configurations
extends: [
'tseslint/configs/recommendedTypeChecked',
// or
'tseslint/configs/strictTypeChecked',
],
});Optional: Add stylisticTypeChecked for additional stylistic rules.
export default tseslint.config({
// ...other configurations
extends: [
'tseslint/configs/recommendedTypeChecked',
'tseslint/configs/stylisticTypeChecked',
],
});Install the React plugin:
$ npm install eslint-plugin-react --save-devUpdate your ESLint configuration to include the React plugin and set the React version:
// eslint.config.js or .eslintrc.js
import react from 'eslint-plugin-react';
export default tseslint.config({
settings: { react: { version: '18.3' } },
plugins: {
react,
},
rules: {
// other rules...
// Enable React's recommended rules
...react.configs.recommended.rules,
...react.configs['jsx-runtime'].rules,
},
});We use Jest for testing. To run all tests, use the following command:
$ npm testtest('User registration', () => {
expect(registerUser('username', 'password')).toBeTruthy();
});We enforce consistent code style using ESLint. Run the following to check for style violations:
$ npm run lintTo deploy UniW on a live system, follow these additional steps:
- Set Up a Cloud Server: Deploy the app to platforms like AWS or Google Cloud.
- Environment Configuration: Ensure environment variables such as
MONGODB_URIandJWT_SECRETare properly configured for production. - Start the Application:
$ npm start
- Configure Reverse Proxy (Optional): Use Nginx or another reverse proxy to handle requests and improve security.
- Node.js - Backend logic and API
- React.js - Frontend for dynamic user interfaces
- MongoDB - Data storage for users and game scores
- Firebase - Push notifications and real-time features
- Canvas API - Rendering game graphics
- ESLint - Code linting and style enforcement
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. Check the tags in the repository for available versions.
- Muhammad Adnan - Initial Work -
- See the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Hat tip to open-source projects used
- Inspiration from casual game platforms
- Thanks to our growing developer community for their continuous support
This live project offers aspiring developers a unique opportunity to gain hands-on experience and earn certification, contributing to the exciting evolution of UniW. By participating in the development of UniW, developers not only contribute to an innovative project but also gain valuable experience and recognition in the tech industry.
Feel free to reach out for any questions or support regarding the UniW project!