Welcome to CP Unofficial, an open community dedicated to competitive programming enthusiasts! We are a group of students from National Institute of Technology, Rourkela who are passionate about programming and have come together to create a community for like-minded individuals to connect and collaborate. At CP Unofficial, we believe that programming is not just a hobby, but a way of life. Our goal is to create a community where everyone can learn from each other, grow together, and have fun while doing it. Whether you are a beginner just starting out or a seasoned pro, we welcome you to join us on this journey.
We launched CP Unofficial in January 2021, and since then, we have grown into a vibrant community with members from all over the college. We have hosted several successful contests, workshops, and webinars, and we are constantly looking for new ways to improve and serve our members better.
The lack of a supportive community and the absence of a platform for discussion and problem sharing can indeed be a challenge for competitive programmers. Project-Phoenix helps all those programmers to tackle some specific problems that arise from these issues.
- Limited feedback and learning opportunities: Without a community to provide feedback and review solutions, competitive programmers may miss out on valuable insights and alternative approaches. Constructive feedback and discussions can significantly enhance the learning experience.
- Difficulty in finding contest schedules: Contest schedules are crucial for competitive programmers to plan their participation and allocate time accordingly. If the schedules are not readily available or inconsistent across different platforms, it becomes challenging to keep track of upcoming contests and prepare for them.
- Scattered resources: The lack of centralized resources and guidance can make it difficult for competitive programmers, especially beginners, to access learning materials and references. Having a comprehensive collection of tutorials, practice problems, and editorial solutions can greatly facilitate the learning process.
- Inefficient progress tracking: Competitive programming requires continuous learning and improvement. Without proper tools or systems to track progress efficiently, it becomes challenging for programmers to identify their strengths and weaknesses, set goals, and monitor their growth over time.
- We have created a community chatroom section for competitive programmers to converse with one another. Competitive programmers can connect with others who share their interest in problem-solving through the community chatroom. They can discuss difficult problems, share their strategies, and solicit advice or direction from others. This promotes collaboration, knowledge sharing, and the development of problem-solving skills.
- We have created a section for Events to list all upcoming contest schedules in one location. The events page features numerous contests and competitions from well-known platforms such as Codeforces and Codechef. The start time, duration, and platform of the competition are specified. This ensures that the contest listings are accurate and up-to-date.
- We have created a Resources Section listing the best and most accessible free resources. This page provides a compilation of relevant blogs and articles on competitive programming. On the blogs page, users can search and access any Codeforces blog by entering the blog's author ID, making it easy to find specific content. Additionally, the page provides a curated selection of learning resources to assist users in enhancing their programming skills.
- We have compiled a list of the best and most free competitive programming tools in a special section. This section provides a comprehensive list of browser extensions and programming tools required for competitive programming. Users can discover a curated selection of highly recommended coding tools, integrated development environments (IDEs), code editors, and browser extensions.
![]() Manmohan Mandhan 💻 |
![]() Ishika Poddar 💻 |
This is a Next.js project bootstrapped with create-next-app.
Clone the project in localhost
git clone https://github.com/Manmohan63/Project-Phoenix.gitInstall all the npm packages. Go into the web folder and type the following command to install all npm packages
npm installSet up Firebase credentials:
Create a new Firebase project and obtain the necessary credentials (API key, authentication domain, etc.). Update the Firebase configuration in the .env.local file.
In order to run the application in development mode type the following command
yarn devThe Application Runs on localhost:3000
You can start editing the page by modifying pages/index.js. The page auto-updates as you edit the file.
API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/hello.js.
The pages/api directory is mapped to /api/*. Files in this directory are treated as API routes instead of React pages.
This project uses next/font to automatically optimize and load Inter, a custom Google Font.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
- Next.js: A React framework for building server-rendered applications. Next.js provides server-side rendering, static site generation, and other powerful features that enhance performance and improve SEO.
- Tailwind CSS: A utility-first CSS framework that allows for rapid UI development. Tailwind CSS provides a set of pre-defined utility classes that can be combined to create custom and responsive designs.
- Firebase: A comprehensive suite of cloud-based tools and services provided by Google. Firebase is used in CPUnofficial for user authentication, real-time database management, and hosting. It simplifies the development process and provides scalable and secure infrastructure for the platform.
These technologies were chosen for CPUnofficial due to their combination of flexibility, ease of use, and robustness. Next.js provides a solid foundation for building complex web applications, while Tailwind CSS streamlines the UI development process. Firebase offers a reliable backend infrastructure for user authentication and data storage, enabling secure and efficient operations within the platform.
While working on this project, we encountered several challenges. One of the main challenges was understanding and working with APIs effectively. It required learning how to make API requests, handling responses, and efficiently organizing and displaying the data on the website. We also faced some difficulties in managing user authentication and ensuring the security of user data.
This project allowed us to deepen my understanding of web development using NextJS, Tailwind CSS, and Firebase Authentication. It provided valuable experience in integrating APIs, managing user data securely, and developing a responsive and user-friendly interface.
We learned a lot about integrating APIs into web applications. We used the Codeforces API and LeetCode API to fetch and display user-specific data from these platforms. This allowed users to connect their Codeforces and LeetCode accounts to the website and view their statistics, submission history, and more.
- React
- Nextjs
- Javascript
- Firebase
- Tailwind CSS
- Cloudinary
- Canva
- Vercel
In terms of future improvements, there are a few areas we are planning to focus on:
- We want to expand the range of resources available on the website by adding more platforms and content related to competitive programming.
- Additionally, we aim to enhance the user experience by implementing features like personalized recommendations for upsolving problems.




