The Tulip Dating App's back-end is the powerhouse behind our platform's seamless operation, enabling secure user interactions, real-time communication, and intelligent matchmaking. Here's how our chosen technologies contribute to a top-tier dating experience.
- Node.js: A JavaScript runtime that allows us to build the server-side of the app with JavaScript. It's fast, scalable, and works well with real-time applications.
- Express: A lightweight web application framework for Node.js that simplifies the development of web APIs, handles HTTP requests, and integrates middlewares for extended functionality.
- MongoDB: A NoSQL database that stores data in flexible, JSON-like documents. In Tulip, it allows for efficient storage and retrieval of user profiles and match information.
- Render: Tulip utilizes Render for CI/CD. Render provides a platform for automating the build, test, and deployment procersses, ensuring that changes to the codebase are seamlessly and efficiently integrated into the production enviroment. Render's infrastucture-as-code approach streamlines the deployment pipeline and enhances the overall agility and stability of the Tulip application.
- Socket.IO: A JavaScript library for real-time web applications. It enables real-time, bidirectional, and event-based communication between web clients and servers. It's perfect for the chat feature in Tulip.
- Insomnia: Used to design, test, and document APIs. It helps ensure that our endpoints behave as expected and makes it easier to communicate API specifications to the front-end team.
- GitHub: Serves as our code repository and version control system, also facilitating collaboration through features like issues and pull requests.
- Real-Time Chatting: Built with Socket.IO, our chat system delivers messages instantly between users, enhancing the social experience.
- Secure Authentication: We employ JWTs to manage user sessions securely and bcrypt for hashing passwords, providing a reliable security layer.
- MongoDB Database: Our choice for data persistence, handling complex queries efficiently, and scaling horizontally as our user base grows.
- Advanced Matchmaking Algorithm: Utilizes user profile data to suggest compatible matches, thanks to MongoDB's powerful aggregation framework.
- Secured API Routes: We use JWT-based authentication to protect our API endpoints, ensuring that only authorized users can access sensitive data.
To get the back-end up and running
locally, clone the repository and follow these steps:
git clone https://github.com/YuJi-2023/Tulip-back-end
cd tulip-backend
npm install
npm start
- Credential Verification: We compare hashed passwords using bcrypt to keep login details secure.
- Token Creation & Management: JWTs are generated for authenticated users, enabling secure API access.
- HTTPS/SSL: Our APIs are served over HTTPS, ensuring all data in transit is encrypted.
Distributed under the MIT License. See LICENSE.md
for more information.
Like our work? Give us a star on GitHub!