This project is a web app designed for aspiring Computer Science students to practice and strengthen their coding skills. Whether you're just starting out or want to brush up on specific topics, our platform offers a range of challenges to help you grow.
- Technologies Used
- Installation
- Running the Project
- Usage Instructions
- Features
- License
- Future Features
The serverAccountKey from Firebase is private. It must be securely configured in config/serviceAccountKey.json. Make sure this file is properly set up before running the project to ensure backend functionality. Also you will need to set up the questions by running upload.mjs.
- Flask: A lightweight web framework for Python.
- React: A JavaScript library for building user interfaces (frontend).
- React Router: A library for routing in React applications.
- Context API: RESTful APIs for user authentication, question retrieval, and progress tracking.
To get started with this project, follow these steps:
-
Clone the Repository:
git clone https://github.com/PiShrestha/programmable.git
-
Navigate to the Project Directory:
cd programmable -
Install Backend Dependencies: Make sure you have Python installed. Then run:
pip install -r requirements.txt
-
Install Frontend Dependencies: Navigate to the frontend directory and install the dependencies:
cd frontend npm install
To run the project locally, follow these steps:
-
Start the Flask Backend: From the backend directory of the project, run:
python run.py
This will start the Flask server, typically at
http://localhost:5000. -
Start the React Frontend: In a new terminal window, navigate to the frontend directory and run:
npm start
The React application will be available at
http://localhost:3000.
After starting the application, follow these steps:
- Navigate to the login page and sign in using your credentials.
- Explore the different coding challenges available on the platform.
- Track your progress through the dashboard.
- Daily Progress: Users must complete 10 questions daily for progress tracking.
- Streak Tracking: Built-in streak tracker using user authentication.
This project is licensed under the MIT License.
- Add user profiles to enhance personalization and user engagement.
- Include additional programming languages, such as Python, to broaden usability and functionality.
- Integrate a visual dashboard similar to LeetCode for activity statistics.