Project: Leetcode College Ranklist Website using MERN Stack
Project Summary: I recently spearheaded the development of a Leetcode College Ranklist website utilizing the MERN stack. This platform showcases Leetcode Contest Ranklists exclusively for registered users of my college, providing separate rankings based on gender and year of study. The goal is to foster healthy competition and enhance the coding culture within my college community.
Process of Thinking Through the Steps:
-
Requirement Analysis:
- As the CP-DSA Lead of my college coding club, I aimed to cultivate a robust coding culture. However, Leetcode, the primary platform for coding contests, lacked a feature for filtering ranklists based on college, year of study, and gender. To address this, I initiated the development of this website.
-
Architecture Planning:
- Opted for the MERN stack due to its flexibility and efficiency, utilizing MongoDB for the database, Express.js for the server, React for the front end, and Node.js for the backend.
- Outlined the project architecture, including the database schema, API endpoints, and the structure of React components.
-
Database Design:
- Crafted the MongoDB database schema, defining collections for users, contests, and rankings.
- Ensured efficient indexing and established relationships between collections for seamless data retrieval.
-
Backend Development (Node.js & Express.js):
- Established the Node.js server using Express.js, implementing RESTful API endpoints for user registration, contests data retrieval, and request processing.
-
Frontend Development (React):
- Developed React components for various sections of the website, such as the contest table, user registration, and the ranking page.
- Integrated state management using tools like Redux for a more organized and scalable frontend architecture.
-
Testing and Debugging:
- Conducted thorough testing, including unit testing for backend APIs and end-to-end testing for the entire application.
- Addressed and resolved any bugs or issues identified during testing.
-
Deployment:
- Deployed the application on a cloud platform such as AWS or Onrender, ensuring scalability and reliability.
- Provided ongoing maintenance and support, addressing any post-deployment issues and incorporating client feedback.
Throughout the project, I prioritized modular and scalable code, ensuring that each component could be easily maintained and extended in the future. Regular communication with the client and an iterative development approach allowed for flexibility in accommodating changes and enhancements during the development process.