Skip to content

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.

Notifications You must be signed in to change notification settings

ComicFix-com/UniW

Repository files navigation

UniW

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.


Table of Contents


Features Highlight

  • 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.

Tech Stack

Frontend

  • 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.

Backend

  • 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.

Additional Tools

  • 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.

Getting Started

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.

Prerequisites

Before running the project, ensure you have the following installed:

  • Node.js (v14.0 or higher)
  • MongoDB (for user data and game scores)
  • Git (for version control)

Example:

$ node -v  # To check Node.js version
v14.17.0

$ git --version  # To verify Git is installed
git version 2.30.0

Installing

Follow these steps to set up the development environment:

Step 1: Clone the Repository

$ git clone https://github.com/username/UniW.git
$ cd UniW

Step 2: Install Dependencies

$ npm install

Step 3: Set Up Environment Variables

Create a .env file in the root directory with the necessary configurations:

MONGODB_URI=mongodb://localhost:27017/uniw
PORT=3000
JWT_SECRET=yourSecretKey

Step 4: Run the Development Server

$ npm run dev

You should now have a local copy of UniW running at http://localhost:3000.


ESLint Configuration

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:

Step 1: Update parserOptions

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,
    },
  },
});

Step 2: Extend Recommended Type-Checked Configurations

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',
  ],
});

Step 3: Install eslint-plugin-react and Configure

Install the React plugin:

$ npm install eslint-plugin-react --save-dev

Update 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,
  },
});

Running the Tests

End-to-End Tests

We use Jest for testing. To run all tests, use the following command:

$ npm test

Example Test:

test('User registration', () => {
    expect(registerUser('username', 'password')).toBeTruthy();
});

Coding Style Tests

We enforce consistent code style using ESLint. Run the following to check for style violations:

$ npm run lint

Deployment

To deploy UniW on a live system, follow these additional steps:

  1. Set Up a Cloud Server: Deploy the app to platforms like AWS or Google Cloud.
  2. Environment Configuration: Ensure environment variables such as MONGODB_URI and JWT_SECRET are properly configured for production.
  3. Start the Application:
    $ npm start
  4. Configure Reverse Proxy (Optional): Use Nginx or another reverse proxy to handle requests and improve security.

Built With

  • 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

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.


Versioning

We use SemVer for versioning. Check the tags in the repository for available versions.


Authors

  • Muhammad Adnan - Initial Work -
  • See the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.


Acknowledgments

  • Hat tip to open-source projects used
  • Inspiration from casual game platforms
  • Thanks to our growing developer community for their continuous support

Additional Information

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!

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 2

  •  
  •