iGOT-MissionKarmayogi / C4GT-Communications-Console

4 stars 7 forks source link

[DMP 2024]: Phase1 - Implement User Data Retrieval API with Flexible Filtering #1

Open rajnishdargan opened 5 months ago

rajnishdargan commented 5 months ago

Description

Phase 1: API Creation

Develop a versatile API endpoint for retrieving user data from the database with flexible filtering options, focusing on user role-based and other properties.

Phase 2: UI Creation

Design and implement a user interface (UI) to interact with the API, allowing users to utilize the flexible filtering options to retrieve and display user data based on their roles and other criteria.

Goals & Mid-Point Milestone

Goals

Phase 1

Mid-point Milestone

Setup/Installation

Choose a suitable programming language and database solution capable of handling large datasets, with proper indexing and optimization. For the Frontend Application Use the Angular

Expected Outcome

Phase 1

An API endpoint is available to retrieve user data from the database. API to filter user on any property. API Design spec.

Phase 2

The frontend UI provides a smooth and responsive user experience for filtering and visualizing user data.

Acceptance Criteria

Phase 1

API endpoint successfully retrieves user data from the database. Users can filter data based on any property with accurate results displayed. The logic should be generic rather than specific to particular properties.

Phase 2

The frontend UI is intuitive and user-friendly, allowing users to easily interact with filtering options. Filtering functionality is implemented efficiently to handle large datasets without performance degradation.

Implementation Details

Phase 1

Choose the programming language for backend API development. Choose a database solution like PostgreSQL optimized for large datasets and capable of efficient querying. Implement API endpoints for user data retrieval and filtering, following RESTful principles.

Phase 2

Integrate the frontend UI with the backend API to enable seamless data exchange and filtering. Implement pagination and lazy loading techniques in the frontend UI to handle large datasets efficiently.

Mockups/Wireframes

No mandatory UI integration is required for this issue for Phase1.

Product Name

iGot Karmayogi

Organisation Name

EkStep Foundation

Domain

⁠Learning & Development

Tech Skills Needed

Phase 1

Experience with programming language and framework for backend API development. Knowledge of database management systems like PostgreSQL for efficient data storage and retrieval. Understanding of RESTful API design principles and best practices.

Phase 2

Proficiency in Angular for frontend UI development. Familiarity with frontend optimization techniques for handling large datasets.

Mentor(s)

@krgauraw

Category

Backend, Frontend

VishnuAmit commented 5 months ago

Hey @rajnishdargan . I'm taking this on and would like to contribute to this project after my proposal. Looking forward

akshatvermavi commented 5 months ago

Hi @rajnishdargan I am very friendly to this issue I wanna work on the same Thanks

sagarkori143 commented 5 months ago

Hey @rajnishdargan I have gone through the project description. Can you please elaborate on what kind of data we will be fetching and how is the data structured ? Waiting for your kind response.

rajnishdargan commented 5 months ago

Hi @VishnuAmit, @akshatvermavi, and @sagarkori143,

Thank you for showing interest in the project.

@sagarkori143, the data we want to fetch from the database will be user data with various properties such as name, email, mobile, user roles, and other properties. Additionally, there could be another database/table holding data of various courses to which users are enrolled.

The API should return a list of users based on various filters. For example, if I want to fetch all users who have enrolled in at least one course, the API should be able to filter out such users.

Please feel free to send your proposals through the Unstop platform.

divy-vinayak commented 5 months ago

Hi @rajnishdargan!! My name is Divy Vinayak and I am a pre final year student at IIT Kharagpur. I am a passionate software engineer. I am the winner of Smart India Hackathon 2022. I am really excited to contribute to the project.

Just have a couple of questions regarding this issue.

  1. The users being retrieved here, are they current users of iGOT's platform? If yes, can you the structure of user's info stored in the current database.
  2. Is frontend being made with angular a requirement? Asking because if it isn't, the entire application can be built very fastly using NextJs Server Actions and TRPc, instead of traditional RESTful APIs which are prone to a lot of type errors and often encounters the problem of overfetching resulting into poor application performance.
  3. Does this backend is restricted to only the frontend also made for this specific purpose or do we plan on exposing these api endpoint to any other iGOT's application as well?

Thank you!!

meghnadutta02 commented 5 months ago

Hey @rajnishdargan, I was curious about whether we could use Next.js for both the frontend and backend?

Sneha0019 commented 5 months ago

Hey @rajnishdargan , I am Sneha Menat student from VJTI, Mumbai and I am excited to contribute in this open source project.

shreyp135 commented 5 months ago

Hi @rajnishdargan, I'm Shreyansh Paliwal, a B.Tech student at MAIT Delhi. I've submitted the proposal on Unstop, looking forward to collaborate with the community :)

VishnuAmit commented 5 months ago

hey @rajnishdargan . I have submitted my proposal with an appropriate solution to the problem statement and thanks again for clarifying about the structure of the data.

Looking forward to work on this project in the near future.

harshilshah99 commented 5 months ago

Hi @rajnishdargan, I've submitted my proposal for the above mentioned issue on Unstop, and looking forward to collaborate with you.

Dey11 commented 5 months ago

Hello @rajnishdargan , I have submitted my proposal for this project on Unstop. Since I have built similar projects, the project at hand is familiar to me and if selected I will do my best to contribute and build a scalable system which fulfills all the requirements. Looking forward to working with all my like minded peers in this open source community. Thank you.

Niharika0104 commented 5 months ago

Hii @rajnishdargan ,I'm excited to work on this project.I have sent proposal.

aryanak-18 commented 4 months ago

Hello @rajnishdargan , I have submitted the proposal and I will be delighted if it is accepted. I have previously worked on similar projects, so I think I am a good fit for this project.

Taeju1330 commented 4 months ago

Hello @rajnishdargan , I am interested in contributing to this project as it aligns with my experience and skills. I can leverage my skills as its similar to the projects that I've worked on. I'm also sending a proposal.

soumya-maheshwari commented 4 months ago

Hello @rajnishdargan,

I have submitted the proposal and am excited about the possibility of it being accepted. Having worked on similar projects in the past, I am confident that I am a good fit for this opportunity.

rajnishdargan commented 4 months ago

greetings @rajnishdargan I have submitted my proposal, but I realized I made a mistake while submitting the proposal in the selected GitHub project link by submitting my GitHub account link instead. I hope this mistake won't cause it to be overlooked. Thank you for your understanding. This is my proposal Link : [ https://www.canva.com/design/DAGFRVzrPKg/Hc5H49QaJyWIYBQXM6EwLA/view?utm_content=DAGFRVzrPKg&utm_campaign=designshare&utm_medium=link&utm_source=editor ]

Sorry @tihom4537 I can't see your proposal under my projects on unstop platform, so I can't review and proceed it. You can reach out to C4GT support team and ask them to help you out.

tihom4537 commented 4 months ago

greetings @rajnishdargan I have submitted my proposal, but I realized I made a mistake while submitting the proposal in the selected GitHub project link by submitting my GitHub account link instead. I hope this mistake won't cause it to be overlooked. Thank you for your understanding. This is my proposal Link : [ https://www.canva.com/design/DAGFRVzrPKg/Hc5H49QaJyWIYBQXM6EwLA/view?utm_content=DAGFRVzrPKg&utm_campaign=designshare&utm_medium=link&utm_source=editor ]

Sorry @tihom4537 I can't see your proposal under my projects on unstop platform, so I can't review and proceed it. You can reach out to C4GT support team and ask them to help you out.

thank you @rajnishdargan I will reach out to C4GT support team .

VishnuAmit commented 4 months ago

Hi @rajnishdargan, I just wanted to inquire about the current status of the selection process. Could you please provide an update? Thanks

krgauraw commented 3 months ago

Weekly Goals

Week 1:

Week 2:

Week 3:

Week 4:

Week 5:

Week 6:

Week 7:

soumya-maheshwari commented 3 months ago

Weekly Learnings & Updates

Week 1

Week 2

Week 3

Week 4

Week 5

Week 6

Week 7