Welcome to the DSA Launchpad 5.0 Game Platform! This platform was developed for the WCE ACM Student Chapter event, DSA Launchpad 5.0, to engage students in learning Data Structures and Algorithms through interactive games.
Check out the live project here: DSA Launchpad 5.0
This platform provides users with an engaging way to learn DSA through hands-on game-based challenges. Users land on a login page, and upon successful login, they can navigate to the home page displaying all available games. By clicking "Play Game," they can begin an interactive session with one of the following games, tailored for foundational DSA topics.
- User Authentication: Users must log in to access games and track scores.
- Predefined Games: Each game includes multiple levels with unique DSA challenges.
- Score Tracking and Leaderboards: Users' scores are tracked and stored in the database, and leaderboards for each game are available.
- Responsive Design: Accessible on various devices for a seamless experience.
- Build Binary Search Tree: Users will drag and drop nodes to construct a BST, enhancing their understanding of tree structures.
- Tower of Hanoi: This game focuses on recursion concepts, challenging users to solve the classic Tower of Hanoi problem.
- Match the Card - Time Complexity: A memory game centered on matching time complexity terms with their definitions, reinforcing key algorithmic concepts.
- Clone the repository:
git clone https://github.com/Chinmay1635/DSA-LAUNCHPAD-5.0.git
- Navigate to the project directory and install dependencies:
cd DSA-LAUNCHPAD-5.0 npm install
- Set up environment variables:
- Configure
JWT_SECRET,DATABASE_URL, and other sensitive information in a.envfile.
- Configure
- Start the backend server:
npm start
- Start the frontend by deploying to Netlify or using a local static server.
- POST
/registerUser: Register a new user. - POST
/loginUser: Authenticate a user and store a JWT token in the browser's cookies.
- POST
/updateScore: Updates the score for a specific level within a specific game.
- GET
/leaderboard/:gameName: Retrieves the leaderboard for a given game, showing users with the highest scores.
- Fork the repository.
- Create a new branch.
- Make your changes and commit.
- Open a pull request describing your updates.