Hey there! This is planning for ReplForms, and I just wanted some community feedback before I dived into development. First off, let me explain what ReplForms is.
ReplForms is superficially Google Forms, but tailored more towards usage in the repl.it community. This is mainly inspired by my program failing to create some of the groups for the MMH because people changed their usernames on the Google Form signup. @MrEconomical's repl mail (go check it out!) is a source of inspiration as well.
Features To Include
- Repl Auth (I just recently figured it out)
- Ability to list/unlist forms
- Set expiration dates on forms
- Various question types for forms, multiple choice, text, select-all, dropdown, etc
- Option for anonymous forms (user is not recorded)
- Export form submissions as JSON
- View submissions as various graphs/charts (this'll be hard)
- Max amount of submissions per user option
- Embed repls in forms or form submissions
1.) Build server with API for manipulating forms
2.) Build front end using server API
3.) Fix broken features, add new ones
Any suggestions or features that I should include? Please don't be afraid to vocalize your suggestions. I want to build as much into the app for the first version.
Suggestions I have Received
- Public API (I will try to implement this, I need to be able to somehow authenticate requests sent to it)
- Image uploads (possibly, would probably need to set up Firestore)
- Customized colors for forms (will attempt to add)
- Email users completed form (maybe)
You can view the progress here.
- 1/31/2020: Work on server has began
- 2/3/2020: Started the database before finishing the rest of the server. Using Firestore.
- 2/5/2020: Figured out a way to authorize access to the API! There will be a public API!
- 2/12/2020: Server has been rewritten in Koa because of some HTTP module quirks. Dabbled a tiny bit in the front end.
Definitely markdown, image support would be nice. Will the API be open to the public with documentation on how to access it because I'd love to make a command-line client!