A fanfic publishing platform with a personalization layer: authors can mark spots in the story where the reader is asked a question (their own name, a friend's name, a favorite color), and the platform substitutes those answers into the text as the reader goes through the chapters.
Working title.
ficverseis a placeholder repo name — the product brand is still being chosen. The original codename is "Lollipopfics".
.
├── backend/ # Go backend with RESTful API
│ ├── config/ # Configuration management
│ ├── database/ # Database connection and migrations
│ ├── models/ # Data models
│ ├── routes/ # HTTP routes
│ └── main.go # Application entry point
│
└── react/ # React + Vite frontend
└── src/
- Go 1.21 or higher
- PostgreSQL 14 or higher
-
Navigate to the backend directory:
cd backend -
Install dependencies:
go mod download
-
Create a
.envfile based on.env.example:cp .env.example .env
-
Update the
.envfile with your database credentials and JWT secret. -
Create the PostgreSQL database:
CREATE DATABASE fanfic_platform;
-
Run the application (migrations will run automatically):
go run main.go
The backend will start on http://localhost:8080.
The frontend is a React + Vite app.
cd react
npm install
npm run devThe frontend will be available at http://localhost:5173.
The application uses the following tables:
- users: User accounts
- fanfics: Published fanfics
- chapters: Fanfic chapters
- questions: Interactive questions
- answers: User answers to questions
- comments: Comments on fanfics and chapters
- pending_questions: Tracks pending questions for users
POST /api/auth/register- Register new userPOST /api/auth/login- LoginPOST /api/auth/logout- Logout
GET /api/fanfics- List all fanficsGET /api/fanfics/:id- Get fanfic detailsPOST /api/fanfics- Create fanfic (authenticated)PUT /api/fanfics/:id- Update fanfic (authenticated)DELETE /api/fanfics/:id- Delete fanfic (authenticated)
GET /api/fanfics/:id/chapters- List chaptersGET /api/chapters/:id- Get chapterPOST /api/fanfics/:id/chapters- Create chapter (authenticated)PUT /api/chapters/:id- Update chapter (authenticated)DELETE /api/chapters/:id- Delete chapter (authenticated)
GET /api/fanfics/:id/questions- List the substitution questions defined by the authorPOST /api/fanfics/:id/questions- Create question (authenticated)GET /api/fanfics/:id/answers- Get the reader's saved answers (authenticated)POST /api/fanfics/:id/answers- Save the reader's answers (authenticated)
GET /api/fanfics/:id/comments- Get fanfic commentsPOST /api/fanfics/:id/comments- Create comment (authenticated)DELETE /api/comments/:id- Delete comment (authenticated)
This project is being developed incrementally following the task list in .kiro/specs/interactive-fanfic-platform/tasks.md.
All rights reserved.
This source is published for reference and portfolio purposes only. No permission is granted to use, copy, modify, merge, publish, distribute, sublicense, or sell copies of the code, in whole or in part, without explicit written permission from the author.
A formal open-source or source-available license may be adopted in the future as the product matures.