MetroDreamin' is a web application that allows users to design and visualize their dream transportation systems, and peruse the transit fantasies of other users from around the world.
This repository contains all the code for the web frontend and Server Side Rendering (SSR) for the webapp.
If you have any feature suggestions, questions, or anything, please email me!
If you love MetroDreamin', consider donating to the Ko-fi.
MetroDreamin' is a Next.js project, which is an isomorphic/"Universal" javascript framework built on top of React. The isomorphic nature of Next.js is why this repository include portions of the backend of the project, namely the SSR. Note: MetroDreamin' uses the Next.js "pages" directory, not the "app" directory.
Much of the backend of the project, including the NoSQL database, authentification, and blob storage, is powered by Firebase.
The maps themselves are powered by Mapbox GL.
pages/
contains all the code for the Next.js routes for all the – you guessed it – pages for MetroDreamin's front end. Most of the pages utilize SSR in their implementation.
components/
contains the React componts used on the above pages.
util/
contains the reusable snippets used throughout the app including contexts, hooks, helper functions, etc.
styles/
includes the SCSS that makes MetroDreamin' look pretty.
public/
includes static assets used on the site.
After installing the dependencies, you can run the development server by running:
yarn dev
Then open http://localhost:3000 with your browser to see the app.
- Next.js Documentation - learn about Next.js features and API.
- Firebase Modular Documentation - learn about Firebase (modular) features and API
- Mapbox GL JS Documentation - learn about Mapbox GL JS features and API
See the LICENSE file for license rights and limitations (GNU AGPL).
This project is tested with BrowserStack.