gem5-resources-website

gem5-resources-website

The gem5-resources website. A web portal for users to browse resources created for usage in gem5 simulations.

gem5 Resources Website

This is the source code for the gem5 Resources website. It is built using Next.js, a React framework for building static and server-side rendered websites.

Table of Contents

Getting Started

Prerequisites

Installation

  1. Clone the repository

    git clone
    
  2. Install dependencies

     npm install
    
  3. Run the development server

    npm run dev
    
  4. Open http://localhost:3000 with your browser to see the result.

Development

Project Structure

The project is structured as follows:

  • gem5.config.js: Contains the configuration for the gem5 Resources website including the databases and the tabs. This is config that you would use to make changes to the JSON or MongoDB source information and the location of rendering of resource information for a particular category.
  • components: Contains React components used throughout the website.
    • components/tabs: Contains the tabs used in the Resource page.
  • pages: Contains the pages of the website. Each page is a React component.
    • pages/api: Contains the API routes of the website.
    • pages/category: Contains the .md documentation of what every category under gem5 Resources is.
  • public: Contains static assets such as images, fonts, and favicons. Also contains the gem5 Resources Schema and other JSON files of previous versions of gem5.
  • styles: Contains global stylesheets and CSS modules.
  • __tests__: Contains the jest unit tests for the website.
  • __mocks__: Contains the jest mocks for the website.
  • cypress: Contains the cypress integration tests for the website.
  • next.config.js: Contains the configuration for the Next.js server. Includes information on build directories, environment variables and the domain of the website.
  • docs: Contains the documentation files for the website.
  • jest.config.js: Contains the setup configuration for Jest.js, a unit test framework for JavaScript.
  • jest.setup.js: Additional setup for mocking libraries like react-markdown in Jest.js.
  • cypress.config.js: Contains the setup configuration for Cypress, an E2E test framework for JavaScript. Tests how various components of the website interact with each other.

Maintaining the Website

The instructions for maintaining the website are located in the MAINTAINING.md file.

Deployment

The instruction for building and deploying the website are located in the BUILDING.md file.

Contributing

If you find any bugs or have any suggestions, please open an issue or a pull request. For more information, please read the gem5 Contributions page file.

License

The gem5 Resources website is licensed under the LICENSE.md.

Acknowledgements

The gem5 Resources website is built using the following open source projects:

The gem5 Resources website is inspired by the following websites:

All logos and trademarks are property of their respective owners.

Contributors

Special thanks to Jason Lowe-Power and Bobby R. Bruce for their guidance and support.