Building a Better Education Ecosystem with Find-Knowledge
Tags: gdsciiitkalyani, rebase01
Published: 2024-04-20 15:03:23

`
In the fast-paced world of education, finding the right teacher for your learning needs can often be challenging. Similarly, teachers struggle to connect with the right students. To bridge this gap, our team, PinkByte Brigade, developed Find-Knowledge, a web application that seamlessly connects teachers with students. Our project, built with a vision of making education more accessible, comes with a plethora of features to facilitate this connection.

![Find-Knowledge](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gta2kjn1unyt9tjgx1fg.png)

## Submission Track

Open Innovation: Let your creativity run wild in our open innovation track. Whether you're building a new social media platform or revolutionizing healthcare, this track is all about thinking outside the box and pushing the boundaries of what's possible with technology. The only limit is your imagination!

## Project Features

### User Profiles
- **Separate Profiles for Teachers and Students**: Each user has a dedicated profile tailored to their needs.
- **Multiple Teacher Profiles**: Teachers can create and manage multiple profiles, each focusing on different subjects or skills.
- **Track Record**: Teachers can keep track of their current students, pending requests, and past students within their profiles.

### Search and Connection
- **Search Functionality**: Students can search for teachers based on categories and subcategories.
- **Request System**: Students can send requests to teachers directly through the platform.
- **Subscription Management**: Students can subscribe to teachers and unsubscribe as needed.
- **Request Management**: Teachers can accept pending requests from students and manage their student list.

### Advanced Features
- **ACID Properties**: We ensured transaction integrity using proper ACID properties, guaranteeing the completion of transactions or their rollback if any part fails.
- **Persistent User Sessions**: User sessions are saved in the browser, allowing seamless navigation without repeated logins.
- **Database Optimization**: We reduced database redundancy using MongoDB ObjectId references and populate functions.

![Find-Knowledge](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gesy0b8dh82js8znk1ax.png)
![Find-Knowledge](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6hprnxdhkp5one5clarg.png)
![Find-Knowledge](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j40a9ol8kj6ygxq4pfl3.png)
![Find-Knowledge](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/18wzbolocdpn9orrein4.png)

## Future Aspirations

While our project already boasts a range of features, we are ambitious about its future development. Here are some planned additions:
1. **Real-time Chat**: Implementing a chat feature to facilitate direct communication between teachers and students.
2. **Video Call Facility**: Adding video call capabilities for online classes.
3. **Blogging Platform**: Allowing teachers to write blogs on their specialized fields.
4. **Reviews and Comments**: Enabling students to review and comment on teachers' profiles.
5. **Payment System**: Introducing payment facilities for seamless fee transactions between students and teachers.
6. **Assignment Management**: Allowing teachers to set and manage assignments directly from the platform.
7. **Student Blogs**: Giving students the ability to write blogs for better learning.
8. **Expanded Profile Fields**: Adding more fields to teacher profiles, such as location, degrees, and experience.
9. **Enhanced Filtering**: Enabling more detailed filtering options for teacher profiles.

## Tech Stack

- **Database**: MongoDB for its dynamic schema and strong consistency.
- **Backend**: Express.js and Node.js for efficient backend development.
- **Frontend**: React.js for improved user experience.
- **Frontend State Management**: Redux for effective data management.
- **Frontend Design**: Tailwind CSS for faster development and customization.

## Challenges and Learnings

Our journey wasn't without hurdles, but each challenge became an opportunity to learn and grow:
1. **Planning**: Initially spent time planning the project's workflow and APIs.
2. **Technical Issues**: Dealt with laptop malfunctions, emphasizing the importance of code backup.
3. **Data Redundancy**: Explored ways to reduce redundancy in the database using MongoDB.
4. **Circular Referencing**: Overcame issues with circular referencing in Mongoose using lean functions.
5. **Database Operations**: Learned to manipulate arrays of objects within Mongoose models using $pull and $push operators.
6. **CSS Framework Integration**: Integrated Tailwind CSS, requiring understanding and learning.
7. **State Management**: Mastered Redux for frontend data management.
8. **User Session Management**: Implemented JWT tokens stored in local storage for persistent sessions.

## Conclusion

Participating in our first hackathon has been an enlightening experience. We've not only built a functional project but also gained invaluable lessons in teamwork, time management, and problem-solving. Find-Knowledge isn't just a project; it's a step towards revolutionizing education accessibility.

## Public Code Repositories and Demo

- **Client Side (Frontend)**: [GitHub Repository](https://github.com/Upasana-610/find-knowledge-client.git)
- **Server-Side (Backend)**: [GitHub Repository](https://github.com/Upasana-610/find-knowledge-api.git)
- **Demo Link**: [Vimeo](https://vimeo.com/936950976?share=copy)
- **Postman Collection for API**: [Google Drive](https://drive.google.com/file/d/1hE7fMyq8XBL1i0I48eHzwne2OboOE39e/view?usp=sharing) (Replace {{local}} with base URL)

## Team PinkByte Brigade

### Members:

1. Upasana Pan(Team Lead), Backend and Frontend Development, Upa_610(Devfolio Id)
2. Krishnendu Pan, Frontend Development, Kris_10(Devfolio Id)
`