image for Courte Server

Role

Full-stack Developer

Tech

Express.js, Node.js, JavaScript, MongoDB Atlas, Firebase Admin, Mongoose, GraphQL, AWS EC2

About the Project

Courte's server is running on Node.js with Express.js and GraphQL Apollo and it is hosted on an AWS EC2 instance. GraphQL allows all data to be accessed from a single endpoint, with requests that are scaled to the current need.

As a full-stack developer, I integrated user authentication with Firebase Auth and the Google OAuth provider with our server side code. I utilized Firebase Admin to perform JWT token validation to verify the logged in status of users before allowing access to sensitive API routes. A middleware function conditionally validates the JWT token contained in the authorization header of API requests, creating a user context within the server to protect access to sensitive data. Additionally, I configured the primary GraphQL schema along with the Apollo Server, integrating it with Mongoose schemas to connect to MongoDB Atlas.

Courte is a mobile application that offers a comprehensive solution to facilitate shared use of public tennis courts by enabling users to find the closest parks with available courts, manage queues, and connect with nearby users to play together.