Mayaspace Backend is a federated social network backend implementation that follows the **ActivityPub** protocol. It includes user registration, password authentication using JWT tokens, post creation, and following activities. It uses **SQLite** via the `quick.db` library for data storage.
## Features
- **Federated**: Supports ActivityPub protocol to allow federated communication with other ActivityPub-compatible platforms.
- **Password Authentication**: User authentication with password hashing (using bcrypt) and JWT tokens.
- **SQLite Backend**: Data storage using SQLite via `quick.db`.
- **RESTful API**: Basic routes for user registration, login, post creation, and followers management.
## Technologies
- **Node.js** for backend.
- **Express.js** for routing and middleware.
- **ActivityPub-Express** for ActivityPub protocol handling.
- **quick.db** for persistent SQLite storage.
- **bcryptjs** for password hashing.
- **jsonwebtoken** for user authentication and token management.
- **uuid** for unique post IDs.
- **node-fetch** for making federated requests.
## Installation and Setup
Follow these steps to set up the Mayaspace Backend locally:
If you want to integrate with other federated servers, you can send ActivityPub requests to follow users on other servers or receive activities through the /users/:username/inbox endpoint.
### License
The license is the SPL-R5, see the file named "LICENSE" for details.
### Contributing
Feel free to contribute to this project. Fork the repository, make changes, and submit pull requests to improve Mayaspace Backend.