Seeking web-based spreadsheet with database features: JS or Python options?

Hey everyone,

I’m a mid-level dev with Python and JavaScript experience. I’m looking to create a simple web app that works like a spreadsheet but has some database features too. Think of it as a basic version of those fancy online spreadsheet tools.

Here’s what I want it to do:

  • Let users move rows and stuff around easily
  • Show data in different views (like cards or lists)
  • Allow file attachments
  • Switch between row view and form view
  • Let people work together in real-time
  • Make simple reports and charts

I’ve seen some pre-made parts for sale that do some of this stuff, but I’m not sure if they’re the way to go. Should I buy these ready-made bits? Are there free options out there? Or should I just start from scratch?

Has anyone built something like this before? Any tips or resources would be awesome.

Thanks for your help!

I’ve actually tackled a similar project recently, and I can share some insights from my experience. Instead of going for pre-made components, I decided to build from scratch using a combination of React for the frontend and Django for the backend.

For the spreadsheet-like interface, I used react-data-grid, which handled most of the cell editing and row/column management. It’s pretty customizable and worked well for my needs. To add database features, I implemented a REST API with Django and used PostgreSQL as the database.

Real-time collaboration was a bit tricky, but I managed to get it working with Django Channels and WebSockets. For file attachments, I used django-storages with AWS S3.

The toughest part was definitely the different view types and switching between them. I ended up using react-beautiful-dnd for drag-and-drop functionality, which helped with the card view.

It took some time, but building from scratch gave me full control over the features and performance. If you’ve got the time and enjoy the challenge, I’d recommend this approach. Just be prepared for some hurdles along the way!

hey, i’ve done smth similar before. check out handsontable - it’s pretty good for spreadsheet stuff. pair it with flask on the backend and you’re golden. for real-time, socket.io works great. attachments? just use amazon s3. charts are easy with chart.js. good luck with ur project!

Having worked on a similar project, I’d suggest considering a hybrid approach. Instead of starting completely from scratch or relying solely on pre-made components, you could leverage existing libraries while customizing them to fit your specific needs.

For the spreadsheet functionality, Handsontable or ag-Grid are robust options that offer many of the features you’re looking for out of the box. They’re highly customizable and can be integrated with both JavaScript and Python backends.

On the backend, FastAPI with SQLAlchemy could provide a solid foundation for your database features. It’s fast, easy to work with, and scales well.

For real-time collaboration, you might want to look into Socket.IO or Pusher. They can be implemented relatively easily and provide the real-time capabilities you need.

Remember, the key is to find the right balance between development speed and customization. This approach allows you to get a functional prototype up quickly while still having the flexibility to add unique features as needed.