Backend For Superlit, Written In Go
-
populate the
.env
file. a template is provided in.env.example
. This project also requires a google cloud service account with google sheets API enabled. You can contact me for obtaining this google sheets key, or create your own service account. note: everything in the.env
file is a secret and are not supposed to be shared. -
Clone the frontend and place it adjacent to this directory:
project-root/
├── superlit-backend/
│ ├── Dockerfile
│ ├── docker-compose.yml
│ └── ... (other backend files)
├── superlit-frontend/
│ ├── Dockerfile
│ ├── package.json
│ ├── package-lock.json
│ ├── src/
│ │ └── ... (frontend source files)
│ ├── nginx/
│ │ └── nginx.conf
│ └── ... (other frontend files)
Note: make sure to populate .env
in the frontend repository as well
-
Run
docker-compose up
-
You'll find the website running on
http://localhost
- Install golang
- Run the following to install all dependencies
go mod tidy
- populate the
.env
file. a template is provided in.env.example
note: everything in the .env
file and the private key are a secret and are not supposed to be shared.
- You can run using:
go run main.go
- Follow conventionalcommits.org
Here are the features planned to be implemented in the future:
- The teacher must be able to access a list of students who are in the classroom but did not submit a particular assignment
- Migrate to Postgress from sqlite
- Implement passkeys for authentication
- Explore docker for code sandboxing instead of firejail since firejail only works on linux
- Regex for username matching. This regex must be supplied as an environment variable
- Feel free to raise issues of your own :)