# JourneyPoint
Collaboratively developing JourneyPoint, an interactive travel website with a built-in social media aspect as part of a group project for the CSC301 course taken at the UTM campus. Users can create an account, login, and have access to a dynamic map with which they can place pins on to indicate places they have been to around the world. Users get the option to then make public or private posts tied to these pins, allowing them to share the precise location of their travel pictures and associated experiences with a community of like-minded travel lovers. Other site features include an explore page, forum chat, blog post creation, profile editing, and the ability to leave reviews on trending travel spots.
### Tech Stack
The website was developed according to a standard 3-tier architecture design, with the frontend team employing ReactJS and HTML/CSS, and the backend team using Python’s FastAPI as well as SQLite, PostgreSQL, Amazon S3 and SQLAlchemy for table configuration with Python. Made use of RESTful APIs to expose endpoints for the frontend to interact with via POST/GET/PATCH/DELETE requests secured through JWT-based authentication. The frontend is hosted using nginx (http://www.journeypoint.ddnsfree.com), while the backend service and PostgreSQL database are hosted on Render, with a separate Amazon S3 bucket used for image storage. Jira for project management and story-tracking, GitHub for CI/CD and the Swagger UI for manual backend testing.