# Contributing to Universal Deep Research Frontend This code details a research and demonstration prototype. This software is not intended for production use. ## How to Contribute ### 1. Fork and Clone ```bash git clone cd frontend ``` ### 2. Set Up Development Environment ```bash npm install # or yarn install ``` ### 3. Make Changes - Follow existing code style and patterns - Add tests for new functionality - Update documentation as needed - Ensure all TODO comments are addressed or documented ### 4. Testing - Test components manually in development mode - Verify UI changes work correctly across different screen sizes - Ensure accessibility standards are maintained ### 5. Submit Pull Request - Create a descriptive PR title - Include clear description of changes - Ensure code follows research/demonstration focus ## Code Standards - **TypeScript**: Follow TypeScript best practices and strict mode - **React**: Use functional components with hooks - **Next.js**: Follow Next.js 13+ App Router conventions - **CSS**: Use CSS modules for component styling - **Documentation**: Use clear JSDoc comments and inline documentation - **Error Handling**: Implement proper error boundaries and error states - **Configuration**: Use environment variables for customization - **Accessibility**: Follow WCAG guidelines and use semantic HTML ## Development Commands ```bash # Start development server npm run dev # or yarn dev # Build for production npm run build # or yarn build # Run linting npm run lint # or yarn lint # Run type checking npm run type-check # or yarn type-check ``` ## License By contributing, you agree that your contributions will be licensed under the same terms as this project (research/demonstration use only). You can find the license in [LICENSE](../LICENSE.txt). #### Signing Your Work - We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license. - Any contribution which contains commits that are not Signed-Off will not be accepted. - To sign off on a commit you simply use the `--signoff` (or `-s`) option when committing your changes: ```bash $ git commit -s -m "Add cool feature." ``` This will append the following to your commit message: ``` Signed-off-by: Your Name ``` - Full text of the DCO: ``` Developer Certificate of Origin Version 1.1 Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 1 Letterman Drive Suite D4700 San Francisco, CA, 94129 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. ``` ``` Developer's Certificate of Origin 1.1 By making a contribution to this project, I certify that: (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. ```