Mapnap is a website designed for travellers to plan and organize their itineraries and record memories from their trips. The user can plan and organize upcoming travel ideas in map or calendar view, and also add media files to create a memory album to reflect upon. If a user so chooses, they can then share their trip with their friends over the social media.
Access Mapnap here: https://mapnap.onrender.com/
IMPORTANT:
The create new user
functionality is currently under development, and does not currently add trips as intended. Please use one of the following demo users below while accessing the app:
USER 1
USER 2
✅ The application must allow users to create, update, and delete a trip
✅ The application must allow users to create, update, and delete an experience (e.g., accommodation, attraction, dining, etc.) within a trip, where each experience includes information like start / end time, location, cost, etc.
✅ The application must allow users to import media files (e.g., images, documents, or movies, etc.) to an experience as memories
✅ The application must allow users to share Mapnap on social media
✅ The application should be able to show the trip itinerary and memories as a dashboard and map view
✅ The application should automatically extract metadata in the media files (e.g., exif, etc.) and during the media import process
✅ The application should allow the user to budget their itinerary, by allowing an optional cost/price entry when an experience is added
:warning: The application should allow users to set itinerary, experience, and memories to private (edit: only itinerary trips and memories can be set to private)
✅ The application should allow users to track and provide analytics such as expenses by itinerary or by experience
:x: The application could allow users to query and save transportation details between the location of experiences
✅ The application could be able search for Point of Interest (POI) by name
:x: The application could provide location-aware weather forecast information for upcoming experiences
:warning: The application could allow the user to see a friend's itineraries and experiences (edit: the user can see any public trips, but cannot filter by friend)
1. React
2. Redux
3. Node & Express
4. MongoDB
5. Builds & Deployment
External APIs
1. Auth0 for authentication control
2. S3 Bucket for image storage
3. react-chartjs
4. React Leaflet
5. React Uploady with Crop
As the program itself is somewhat unique compared and maybe a little difficult to onboard users to, having a UI that would show and teach new users how to create and effectively use the application would be extremely useful. Because the program itself is already being built in React, using a library like React Tours could allow new users or users who have not been back in a while to teach themselves on how to use the program. As for other goals that initially were planned as stretch requirements, connecting the program with opentable-react or similar libraries would allow the user experience to be far more streamlined when booking reservations, seeing exactly where they had eaten and various other information related to anything with a reservation. Furthermore, replacing the Leaflet API with Google Maps API would be a good step to make in order to allow the Places API to be used and have a more updated and maintained map, as well as information for specific businesses and landmarks, such as when they open and close, or their respective Google reviews. In order to take this step, we must also be aware that there will be a significant cost in order to gain access to the API, which is necessary yet expensive if we want to continue the development of this application into a more robust and streamlined product.