Live Demo: https://gospace.club/
Heroku link: https://mighty-woodland-52835.herokuapp.com/
Through a platform of knowledge, we develop and designed project for the young generation using science data provide by NASA. We create the correlations between the different areas Nasa's science and the public. This platform has an interface that fits the target audience with interactivity, and it's connected with the NASA directory database.
The benefit of this project is that it brings knowledge to various communities and shares the content in a soft way around the world, powered by NASA social media and reaching the public by their age range.
- MongoDB
- Node.js 10+
- Command Line Tools
The easiest way to get started is to clone the repository:
# Get the latest snapshot
git clone https://github.com/jhonatantft/nasa-gospace-apps.git myproject
# Change directory
cd myproject
# Install NPM dependencies
npm install
# Then simply start your app
node app.js
NASA's Mars Missions First You See It, Then You Don't: Scientists Closer to Explaining Mars Methane Mystery All about Mars Solar System Exploration Sunset on Mars (Viking 1) Earth 3D Model Mars 3D Model
Name | Description |
---|---|
config/passport.js | Passport Local and OAuth strategies, plus login middleware. |
controllers/api.js | Controller for /api route and all api examples. |
controllers/contact.js | Controller for contact form. |
controllers/home.js | Controller for home page (index). |
controllers/user.js | Controller for user account management. |
models/User.js | Mongoose schema and model for User. |
public/ | Static assets (fonts, css, js, img). |
public/js/application.js | Specify client-side JavaScript dependencies. |
public/js/main.js | Place your client-side JavaScript here. |
public/css/main.scss | Main stylesheet for your app. |
public/css/themes/default.scss | Some Bootstrap overrides to make it look prettier. |
views/account/ | Templates for login, password reset, signup, profile. |
views/api/ | Templates for API Examples. |
views/partials/flash.pug | Error, info and success flash notifications. |
views/partials/header.pug | Navbar partial template. |
views/partials/footer.pug | Footer partial template. |
views/layout.pug | Base template. |
views/home.pug | Home page template. |
.dockerignore | Folder and files ignored by docker usage. |
.env.example | Your API keys, tokens, passwords and database URI. |
.eslintrc | Rules for eslint linter. |
.gitignore | Folder and files ignored by git. |
.travis.yml | Configuration files for continuous integration. |
app.js | The main application file. |
docker-compose.yml | Docker compose configuration file. |
Dockerfile | Docker configuration file. |
package.json | NPM dependencies. |
package-lock.json | Contains exact versions of NPM dependencies in package.json. |
Note: There is no preference how you name or structure your views.
You could place all your templates in a top-level views
directory without
having a nested folder structure, if that makes things easier for you.
Just don't forget to update extends ../layout
and corresponding
res.render()
paths in controllers.
You will need docker and docker-compose installed to build the application.
After installing docker, start the application with the following commands :
# To build the project for the first time or when you add dependencies
docker-compose build web
# To start the application (or to restart after making changes to the source code)
docker-compose up web
To view the app, find your docker IP address + port 8080 ( this will typically be http://localhost:8080/ ). To use a port other than 8080, you would need to modify the port in app.js, Dockerfile, and docker-compose.yml.