Roadmap #1

Open
opened 2024-06-30 22:53:30 +02:00 by awiteb · 0 comments
Owner

Oxidetalis Roadmap

Introduction

In this time, the project is in the early stages of development, it is only have
the rigester endpoint. In this roadmap, we will show the next steps to be taken
in the project. We will follow this roadmap until reaching the stable version of
the project.

Roadmap

  • Phase 1: Register Endpoint & User Authentication

    • Register Endpoint
    • User Authentication
    • Signature verification
  • Phase 2: Server configuration

    • Configure the server via configuration file
    • Configure the server via environment variables
    • Configure the server via command line arguments
  • Phase 3: In server communication

    • Implement the websocket, in order to communicate with the server
    • User whitelist, the users that can communicate with the user
    • User blacklist, the users that can't communicate with the user
    • Chat request table, to store the chat requests and delete them after
      acceptance or rejection
    • Endpoint to returns the whitelist and blacklist of the user
  • Phase 3.5: In server communication

    • Server websocket events (from server to user):
      • Chat request (someone wants to chat with the user)
      • Chat request response (from other user) (accept or reject)
      • New message
      • User is online
      • User is offline
      • User is typing
      • User stop typing
      • User has read the message
      • User has received the messages
      • User has deleted the messages (all, or range or by id)
    • User websocket events (from user to server):
      • Chat request response (to other user) (accept or reject)
      • Send message
      • Typing
      • Stop typing
      • Read the message
      • Delete the messages (all, or range or by id)
  • Phase 4: Decentralized server communication
    In this phase, we will modify the in server events (from phase 3.5) to be able
    to send it and receive it from users in other servers.

    • Server events to be modified:
      • Chat request (Will not send it)
      • Chat request response (will not send it)
      • Delete the messages *
    • User events to be modified:
      • Chat request response (will not send it)
      • Delete the messages *

* The server does not save the decentralized messages, so it will not be able to
delete them. This will be done by the user.

  • Phase 5: Start the client
    In this phase, we will start the client development, the client will be a GTK4
    adwaita (relm4.org) application. This will cose a break in
    the server development, but we will continue the server development after the
    client is stable.

  • Phase 6: Server administration

    • Open and close the registration
    • Create register token (token to register a new user when the registration
      is closed)
      • Token expiration
      • Token usage limit
    • Ban user (ban the user from the server)
      • Ban reason
    • Unban user
    • List the banned users
    • Update server configuration (via API)
  • Phase 7: Server features

    • User profile
      • User profile picture
      • User bio
      • User custom fields (like twitter, mastodon, etc)
    • Server blacklist
      • Ban the server
        • Ban reason
      • Unban the server
      • List the banned servers
  • Phase 8: Server stability

    • Try to cover all the code with tests
    • Optimize the code (if necessary)
    • Refactor the code (if necessary)
    • CI/CD pipeline
    • Documentation (API, websockets, core) with Zola
    • Security policy
    • Release the stable version (After make sure that the project is stable)

End of the roadmap, the project will be stable and we will start the maintenance
phase.

Maintenance

In this phase, the project will be kind of stable, we will only fix bugs and add
new features if necessary.

Conclusion

This is the roadmap of the project, we will follow this roadmap until the
project is stable. If you have any suggestions, please open an issue in the
project repository.

# Oxidetalis Roadmap ## Introduction In this time, the project is in the early stages of development, it is only have the rigester endpoint. In this roadmap, we will show the next steps to be taken in the project. We will follow this roadmap until reaching the stable version of the project. ## Roadmap - [x] Phase 1: Register Endpoint & User Authentication - [X] Register Endpoint - [X] User Authentication - [X] Signature verification - [x] Phase 2: Server configuration - [X] Configure the server via configuration file - [X] Configure the server via environment variables - [X] Configure the server via command line arguments - [x] Phase 3: In server communication - [x] Implement the websocket, in order to communicate with the server - [x] User whitelist, the users that can communicate with the user - [x] User blacklist, the users that can't communicate with the user - [x] Chat request table, to store the chat requests and delete them after acceptance or rejection - [x] Endpoint to returns the whitelist and blacklist of the user - [ ] Phase 3.5: In server communication - [ ] Server websocket events (from server to user): - [ ] Chat request (someone wants to chat with the user) - [ ] Chat request response (from other user) (accept or reject) - [ ] New message - [ ] User is online - [ ] User is offline - [ ] User is typing - [ ] User stop typing - [ ] User has read the message - [ ] User has received the messages - [ ] User has deleted the messages (all, or range or by id) - [ ] User websocket events (from user to server): - [ ] Chat request response (to other user) (accept or reject) - [ ] Send message - [ ] Typing - [ ] Stop typing - [ ] Read the message - [ ] Delete the messages (all, or range or by id) - [ ] Phase 4: Decentralized server communication In this phase, we will modify the in server events (from phase 3.5) to be able to send it and receive it from users in other servers. - [ ] Server events to be modified: - [ ] Chat request (Will not send it) - [ ] Chat request response (will not send it) - [ ] Delete the messages * - [ ] User events to be modified: - [ ] Chat request response (will not send it) - [ ] Delete the messages * \* The server does not save the decentralized messages, so it will not be able to delete them. This will be done by the user. - [ ] Phase 5: Start the client In this phase, we will start the client development, the client will be a GTK4 adwaita ([relm4.org](https://relm4.org)) application. This will cose a break in the server development, but we will continue the server development after the client is stable. - [ ] Phase 6: Server administration - [ ] Open and close the registration - [ ] Create register token (token to register a new user when the registration is closed) - [ ] Token expiration - [ ] Token usage limit - [ ] Ban user (ban the user from the server) - [ ] Ban reason - [ ] Unban user - [ ] List the banned users - [ ] Update server configuration (via API) - [ ] Phase 7: Server features - [ ] User profile - [ ] User profile picture - [ ] User bio - [ ] User custom fields (like twitter, mastodon, etc) - [ ] Server blacklist - [ ] Ban the server - [ ] Ban reason - [ ] Unban the server - [ ] List the banned servers - [ ] Phase 8: Server stability - [ ] Try to cover all the code with tests - [ ] Optimize the code (if necessary) - [ ] Refactor the code (if necessary) - [ ] CI/CD pipeline - [ ] Documentation (API, websockets, core) with Zola - [ ] Security policy - [ ] Release the stable version (After make sure that the project is stable) End of the roadmap, the project will be stable and we will start the maintenance phase. ## Maintenance In this phase, the project will be kind of stable, we will only fix bugs and add new features if necessary. ## Conclusion This is the roadmap of the project, we will follow this roadmap until the project is stable. If you have any suggestions, please open an issue in the project repository.
awiteb added this to the Server Stable Version project 2024-06-30 22:56:13 +02:00
awiteb removed this from the Server Stable Version project 2024-06-30 22:56:34 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: OxideTalis/oxidetalis#1
No description provided.