This is a revived personal project originally built in 2023 using SSR with Express.js and EJS template engine library. The original repository is no longer maintained. This version updates dependencies and restores functionality while preserving the original design and server-side rendering approach. It uses old, mock data to compensate for the NASA API no longer being maintained.
- Link to Mars Rover Photo Journal
This app displays photos from one of the publicly available NASA APIs. My goal for it from the start has been to work with data I enjoy, and to focus primarily on the Express.js web application framework. Most courses and walkthroughs that I have encountered for Node.js fullstack software projects (such as PERN, MERN, and MEAN) rush through the Express portion, and I felt I was missing out on a more in-depth understanding of this middleware. I also wanted more experience with the http request and response cycle, and a more thorough understanding of Express's file structure in routes/views for creating routes on a site or for creating API paths.
Robert Bunch's course "Just Express (with a bunch of node and http). In detail." was instrumental in helping me create this.
- Click to open the repository.
- Click the "Fork" button. (This will create a user copy of the repository.)
- Open the Terminal application.
- In Terminal, use the "cd" command to navigate to where the local repository will live.
- In GitHub, click on the green "Code' dropdown.
- You will see three clone options. Select "SSH".
- Copy the SSH key.
- In Terminal, run "git clone [insert copied SSH key here]".
- In Terminal, use the "cd" command to navigate into the newly created directory. Enter
npm ito install dependancies. - Open the local repository in VS Code by typing:
code . - Type
node app.jsinto the terminal and view the app in your browser atlocalhost:8000. - Click on the links on the main page to view today's photos for different rovers, or add a rover name to the url:
localhost:8000/perseverance.
This app was made by El Brewster ✨
routes/index.js ↓ services/rovers.js ↓ data/sol1000Data.js