Helping out with server development

Hi,

I am a Buddhist and software engineer. I do back end Python work, and my company’s stack is similar to what Sutta Central uses. I was wondering if I could help out in any way?

Thanks,

Andrew

13 Likes

Welcome to the community @dayunbao. We are all pleased to meet you, and I think we should call Ven @sujato here swiftly.

Thank you for your offer. :pray:

4 Likes

Hi Andrew, thanks for contacting us.

We’d love to have your help! As you might guess, there is always too much work and not enough people.

Can you give some more background as to your experience and interests? Is there any special field you’d like to look into? Backend scripting? API design? Search? Data Management?

Checkout our Github here, you should be able to set up locally:

Note that we have two apps: SuttaCentral for reading, and Bilara for making translations. Both are in Python and use a similar stack (ArangoDB, LitElement on front end.)

The SuttaCentral app is in a state of flux at the moment, as we are readying a version with major breaking changes. We haven’t cleaned out the old code yet, so it’s a bit of a mess.

You can see the new site in development here:

It’s based on the master branch and is usually updated every few days.

And I hope you don’t mind, but from your user name, do you speak Chinese? Because one of our main developers is Chinese and he’d love to have another Chinese speaker around!

5 Likes

Hi Bhante,

I think my backend scripting and API-related experience is the most relevant for SuttaCentral. My current company’s main product is very API driven. In fact we started implementing a new API last summer. I’m a junior software engineer, and so I wasn’t responsible for designing the new API, but I’ve been helping to implement it. I’ve also have some experience with Docker.

I lived in China and Taiwan for several years, and did learn Chinese, but I left Asia several years ago. Since leaving Asia, I haven’t used Chinese at all. So I’ve forgotten most of it. Back when my Chinese was still decent, I translated some Buddhist teachings of modern Chinese monks. If you’re interested, I posted them here http://modernchan.blogspot.com.

By the way, I’ve known Ajahn Achalo for many years. I think you probably know him, so you can contact him if you’d like a character reference.

Andrew

8 Likes

Hi Andrew,

Well, thanks for the background, that sound great. Even a little Chinese would be handy!

Anyway, what I’d suggest to start is to set up the local environment for both SuttaCentral and Bilara, and play around with it. Let me know if you have any issues doing so.

3 Likes

Sounds, good, Bhante. I’m going to set up the local dev environment this weekend.

5 Likes

Got everything set up over the weekend. I looked through the code, and I think I have a basic understanding of how the back end works. I’m going to keep familiarizing myself the code, but just looking at the code is only so useful. So if you had any suggestions for a next step Bhante @sujato, I feel like I’m ready.

6 Likes

well, that’s awesome.

Are you looking for a specific ticket to implement?

Because one that would be great, and is not currently within the scope of any of our developers, is this:

The background is, mid-last year we did a detailed and comprehensive set of checks and corrections to our fundamental texts. The aim is to ensure absolute fidelity of our Pali text with our sources.

A variety of scripts were developed to ensure this. Our aim was always to then proceed to add these testing scripts as automated tests via Github actions. As you can see, the basic work for this has started, but we never finished it.

You can see the history of this project here:

So the basic spec is this: run the text integrity checks on Bilara-data via github actions on an automated basis. The basis should be, I think, whenever a change is detected in a /root/ file. But that might need some thought.

Given that we have a number of developers working actively on these repos, and there is quite a lot of churn, it might be best for you to begin by forking our repo and making the changes there. When it all works, we can bring it back. What do you think?

Awesome. I’ll take a look. First I just wanted to ask about the general development workflow that’s used by the SuttaCentral devs. Maybe it would be easier to chat with one of them using Google Meet or Zoom?

1 Like

Sure, you can do that, we can arrange a meeting. In fact we can do it right now if you want.

But the normal workflow is that we make a branch, make changes, submit a PR and someone else on the team reviews it before merging.

Currently all changes are being made to master branch for the main SC, which is what you see on staging.

The job I was looking at pertains to a sister repo, so it wouldn’t affect the main SC or Bilara apps directly, only the data sources. For that work we don’t have a regular workflow, so we’d have to define it.

1 Like

Bhante,

I’ve been trying to set up Bilara, but have run into some problems. There was a problem with this file bilara/server/config.py, but after playing with it for a while I got past the errors I was getting. I’m still not sure if everything is correct in there. But now I’m getting this error after clicking on the login button (http://localhost:3003/api/login): FileNotFoundError: [Errno 2] No such file or directory: '/home/hideaki/Code/bilara/checkouts/unpublished/_publication.json'. I’m not quite sure where the _publication.json is supposed to come from. I found this file bilara/repo/_publication.json, but am guessing it’s not supposed to be copied to the other location. Do you have any suggestions?

I don’t exactly know, the person for this is @blake

It can be tricky setting the permissions locally, and I know Blake has changed a lot of code since I did it.

1 Like

OK, thanks. I can post a screenshot of the stack trace if @blake wants to see it.

Got it working for the first time. Was the Rickroll when you click on the user icon your idea, Bhante?

Also like the Bob Ross pic:

bob-ross

2 Likes

This really makes me want to try to get the dev server running :rofl:

3 Likes

Excellent!

I take the fifth.

I spent so much time working on SuttaCentral to get things right I wanted to have some fun with Bilara!

3 Likes

I’m glad you did. After hours of setup and troubleshooting, it was nice to have a laugh.

The way I have things set up at the moment, I don’t seem to be able to add any text in Bilara. So, I can’t test the GitHubActions. I’ll be working on that this weekend. In the bilara/server/config.py file, it has keys named GIT_APP_KEY and GIT_APP_SECRET. I’m guessing I need to set up some authentication/authorization in my forked Bilara GitHub repo.

2 Likes

Yes, right. I’ll contact Blake and see if we can set up a meeting with him in the next couple of days. It’s a tricky thing, getting the permissions working properly locally.

1 Like

Great. Thank you! In the meantime, I’ll keep deepening my understanding of the code.

3 Likes