Enhancing SciCommons Platform

Proposal for Enhancing SciCommons Platform

Introduction:

SciCommons is a platform designed to revolutionize the way research discourse occurs by leveraging modern internet-based social technology. The current state of the platform requires significant improvements in both its technical infrastructure and user interface to fulfill its potential. This proposal outlines a comprehensive plan to address existing issues, enhance performance and user experience, and ensure scalability and maintainability for future growth.

Objectives:

  1. Technical Infrastructure Enhancement:

    • Address current DevOps issues and establish a robust infrastructure to ensure platform stability and scalability.
    • Develop a CI/CD pipeline for streamlined deployment and continuous integration of updates.
  2. Backend Codebase Refactoring:

    • Conduct a thorough cleanup and refactoring of the backend code to improve readability, maintainability, and performance.
  3. Frontend Bug Fixes and Improvements:

    • Identify and resolve existing frontend bugs to make the platform accessible to users.
    • Implement modern UI/UX principles and design patterns for an enhanced user experience.
  4. Release a Stable Version :

    • Ensure the platform is stable and fully operational and do public release.
    • Utilize the improvements made in the technical infrastructure and backend codebase to ensure a reliable platform release
  5. Migration to Next.js:

    • Evaluate the necessity of migrating to Next.js for improved performance, SEO, and server-side rendering benefits.
    • If deemed necessary, initiate the migration process and optimize the platform for Next.js compatibility.
  6. Integration of Latest UI Libraries:

    • Discuss and implement the integration of Shadow Components for a modern and consistent UI across the platform.
    • Explore the implementation of light/dark mode theming to enhance user accessibility and customization options.

Implementation Plan:

  1. Initial Assessment and Planning:

    • Conduct a thorough assessment of the current platform’s technical infrastructure, codebase, and user interface.
    • Prioritize tasks based on urgency and impact on platform performance and user experience.
  2. DevOps Enhancement, CI/CD Pipeline Setup and Release:

    • Address existing DevOps issues and establish a scalable infrastructure using industry best practices.
    • Implement a CI/CD pipeline to automate deployment and ensure seamless integration of updates.
    • Release the version of the platform using the new pipeline.
  3. Backend Refactoring and Bug Fixes:

  4. Frontend UI/UX Improvements:

  5. Migration to Next.js and Integration of UI Libraries:

    • Evaluate the feasibility of migrating to Next.js and its potential benefits for the platform.
    • If migration is deemed necessary, initiate the migration process and optimize frontend components for Next.js compatibility.
    • Integrate Shadow Components and implement light/dark mode theming for a modern and customizable UI.
    • If migration is deemed unnecessary, continue with the current React codebase and further enhance it using the latest UI libraries.

Conclusion:

The proposed enhancements to the SciCommons platform aim to address existing technical challenges, improve performance and user experience, and ensure scalability and maintainability for future growth. By implementing modern DevOps practices, refactoring backend codebase, and enhancing frontend UI/UX, the platform will be better equipped to facilitate research discourse and accessibility in the scientific community and also attract open-source contributors to further improve the same.

Currently I am assessing the SciCommons platform for areas of improvement and optimization. Exploring specific scopes for enhancements to better serve our users. I am open to feature requests. Certain requests that are being considered are as follows:

Feature Requests:

  • URL Identifier for Each Comment under Article
  • Modification of Frontend Design
  • Improvement on Frontend Design of Article Page
  • Implementation of Private Communities
  • User to User Basic Chat Implementation
  • Notifications for Chat Related Updates on Platform
  • Implement Asynchronous Tasks like Sending Emails, Sending Notifications using Celery
  • Implementation of Group Chat

Looking forward to discussing further about the platform and potential features. Feel free to reach out with any suggestions or ideas.

@JyothiSwaroopReddy07 @suresh.krishna I would like to hear you inputs on this.

@abhikrishnaram - please try to make progress on these features, and update us if/when you do that. you can also work on building a good proposal. the more concrete, detailed and well-supported the proposal, the easier it is for us to evaluate it for feasibility, correctness etc. good luck.

ps. In general, we want to see attempts to add features to the existing site, help it work better etc, rather than rewriting it or moving it to a new stack.

1 Like

hi @abhikrishnaram abhikrishnaram, we are glad to hear it from you. you can check at our repositories,fork them and complete the setup. then you can raise prs so that we can review the code. all the best.

1 Like

May I know why the site db is down?. And also does the current db hold any data?. Will it be okay to refactor the backend into separate apps and create models in each; there by making new migration files?

For Asynchronous Tasks what do you say about using huey library. It is simpler and easy to use than celery with all required features and I have used it in multiple in other production systems.

Also what do you think about using using react-hot-toast library for showing toast?.

1 Like

@abhikrishnaram i think these are good suggestions. you can raise prs on this improvements of using hot-toast.
regarding alternatives of celery. we can discuss it and finalize it.please mention it in your proposal as well.
their is no significantly important data in database.

you are open to change structures of django app as well.

if you want .env file of backend plz dm me.

@abhikrishnaram yes your are open to refactor backend into seperate apps. it is significantly an better idea. you can go ahead.

I was mentioning about frontend migration to NextJS. If you want that I could do the whole migration. And as you know it gives better site performances. Since its derived from React the migration will be mostly folder structure and some conventions. Could be done like under a weeks time.

also i made 2 small PRs -

Please do check it out when you are available.

I am thinking about adding eslint to the frontend project and remove the warnings that arise in dev server next.

yup it was by mistake so i deleted the comment. ok will look into the prs and update the status in 2 hrs

1 Like

So I am planning to split the codebase into 5 apps → article, social, chat, community, user

I have made a PR on migration to article app. If you could review and give me suggestions; I will start with the remaining apps.

1 Like

ok, I think this is a big change. I need to ensure if every apiroute works as intended or not. please give me some time. thanks for doing it

1 Like

I just noticed in the frontend codebase my merged PR has been overwritten by this commit - Revert "Merge pull request #10 from abhikrishnaram/backend-url-env" · m2b3/SciCommons-frontend@b17946b · GitHub. What can be done about that?

can you raise a new pr because he was facing merge conflicts and his pr is big so he took a decision to overwrite it. i am really for the issue, if you can raise new pr . plz do it

hi guys… just my two cents without knowing the details. please keep one thing in mind to guide your work and decisions (which I leave to you) - please, at this stage, do not over-engineer the site. Keep the user in mind at all times – will this change make a meaningful change to the life of the user, in short or medium-term, in a way that cannot be fixed by say adding a CPU. What we really need is good design, and good features… which are hard to add (while optimizing some part of the site is more controllable and “easy”, even if technically more difficult).

I hope this makes sense. Please let me know if not.

@JyothiSwaroopReddy07

Hey @suresh.krishna :wave:. To give a better developer experience we have to refactor the codebase a bit. That can openup the platform to a lot more opensource developers and will enable them to easily contribute to it. I understand that our current priority is to get the platform live. Is there any issue with devOps that needs to be addressed?. Other than the chat feature what are the most required yet to be implemented features?. Whats stopping this platform from being used now?. All this would help me understand the landscape better and decide accordingly.

@JyothiSwaroopReddy07 hey i have made of couple for slight improvements. Please do review.

– Frontend

Remerge request for the erased commit

Accessibility improvement for login and register forms

A try at improving individual page UIs. I was hoping to use the page header component with the title and description and the action button on other pages too. what do you think?

– Backend

A small dependency reduction in backend - ttps://github.com/m2b3/SciCommons-backend/pull/1

Article app migration - ttps://github.com/m2b3/SciCommons-backend/pull/2

Currently i am planning to start with the react-hot-toast integration. Please do inform of any other priority task if exists.

(the above reply got flagged not sure why)

Please take a look at the main thread for this project, @abhikrishnaram . There is a list of features there, including high-priority ones mentioned. I am also adding to that list now.

1 Like