Ricardo Harris

Logo

Coder. Cat Dad. Car Nut.
I’m a software developer focused on mastering my craft one language at a time. The projects in this portfolio are some of my favorite works.


View My Resume

View My LinkedIn Profile

View My GitHub Profile

Back to Portfolio

Prometheus

Project description

This project is a full development cycle of a newsreader application from development in Rust to deployment through a React application. The Prometheus application is a standalone GUI built using the Rust Eframe framework, built to display information as requested from https://newsapi.org/. News can be requested by topic or by custom searches. These results are sorted by most engagement by country, which is set by the user. Lastly, the user can customize their viewing experience through modifying the font size and through toggling night mode. The React application serves as a website for the distribution of the Prometheus application, including a description of the product, download links for the product by Operating System, installation instructions, and operational instructions. The React application also links to the compiled Senior Project documentation (found here). To further experience this product, please email me to request access to the appropriate repositories; I would be more than happy to demonstrate further.

How to compile and run the program

To compile this project, it will require several pre-existing conditions. First, install Rust, NPM, and Node. To compile the Prometheus newsreader application, download the Prometheus/ file from src, then run:

cargo run;

To run the web application, create a react project using:

npx create-react-app <project name>;

Install react-router-dom in your project by:

cd <project name>;
npm install react-router-dom;

Then copy the prometheus_website/public/ and prometheus_website/src/ files from the src folder to your react application. Lastly, run:

npm start;

To publish your copy of the web application to your default port. Navigate to localhost:xxxx and enjoy!

UI Design

As there are two products to this project, each product has their own UI Design. To begin with the React application, there is a focus on simplicity and theme. The Home page contains a descriptor of Prometheus and an image of it functioning (see Fig 1), while the Download page contains the download links to the project, installation instructions, and useage instructions with pictures (see Fig 2 and 3).

Homepage
Fig 1. The Homepage of the Web Application.

Download
Fig 2. The Download page.

Instructions
Fig 3. Useage instructions on the Download page.

When using the Prometheus Application for the first time, you need to have an API Key from https://newsapi.org/ (see Fig 4).

Api Key
Fig 4. The launch screen before entering an API Key.

Once you have an API entered, you will have access to the full application (see Fig 5). When using Prometheus, you can change topics (see Fig 6), access articles (see Fig 7), and search for specific articles (see Fig 8).

Running
Fig 5. Prometheus running as normal.

Topics
Fig 6. Changing news topics.

Articles
Fig 7. A rendered article.

Search
Fig 8. Search screen.

By clicking the settings button in the top right (see Fig 9), you can change to the top news in a different country (see Fig 10), change the text size (see Fig 11), and link back to the Homepage. Lastly, to invert the color scheme, click the night-mode button on the right (see Fig 12).

Settings
Fig 9. Settings.

Country
Fig 10. Choose your country.

Country
Fig 11. Choose your text size.

Night Mode
Fig 12. Night mode.

Additional Considerations

To use the Prometheus application, you will need an API key from https://newsapi.org/.

Back to Portfolio