···11+## Note: Being ported to Rust rq
22+33+# Kryptori
44+55+tori.fi, ebay, etc., but for exchanging cryptocurrencies and fiat P2P.
66+77+LocalMonero is down, LocalBitcoins is down, somebody needs to pick up the
88+slack.
99+1010+This codebase aims to create a **not for profit** platform for users to
1111+exchange crypto with random people online through public advertisements. This
1212+platform will not initially be an escrow service.
1313+1414+For example, say I want to get more Monero. It's annoying to go through a
1515+third-party cryptocurrency to go from fiat currency -> Bitcoin (for example) ->
1616+Monero, all the while losing bits of my money along the way. I would rather
1717+find someone who's willing to just do an exchange of their Monero for my cash,
1818+either by mail or in person (yes, I'm brave).
1919+2020+The ads on this platform will look like this:
2121+- I have 180EUR, I want 1XMR (in person, Uusimaa, Finland)
2222+- I have 0.003BTC, I want 290EUR (cash by mail, Europe)
2323+- I have the latest Thinkpad with xyz specs, I want 5XMR (in person or by mail,
2424+ Stockholm, Sweden) etc.
2525+2626+Then the interested parties will iron out the details of their exchange via
2727+chat. That's the make-or-break of this platform, relying on others to conduct
2828+themselves honorably and honestly - but it's up to each willing adult to use
2929+their best judgement.
3030+3131+What do I get out of it, you ask? First of all I literally myself want to
3232+exchange currencies, second of all I guess I'll chuck a donation link on the
3333+site somewhere..
3434+3535+## The requirements/constraints of this codebase
3636+3737+- no accounts, no logging of user data, full stop.
3838+- must encourage users' self-sufficiency and liberty. No hosted Bitcoin
3939+ wallets, but good instructions on how to make one's own.
4040+- users who post an ad must be able to come back and manage the advertisements
4141+ they make.
4242+- web server: full functionality with HTML only. (With enhanced functionality
4343+ with JS enabled?)
4444+4545+Here's how I imagine the process to go:
4646+4747+1. A user posts an ad, and recieves a token via email where they can manage
4848+said ad.
4949+2. An interested party clicks that they're interested, and is prompted to give
5050+a reply and their email address to the ad poster.
5151+3. This site sends that interested party reply+caller email to the ad poster
5252+user via the poster's email.
5353+4. The poster gets in touch with the interested party and sorts everything out
5454+with them via email between themselves.
5555+5. Transaction occurs or doesn't, between themselves. The poster takes down or
5656+edits the ad via their token they got sent to their email originally.
5757+5858+## Run the application
5959+6060+`nix develop` then `make run` or `uvicorn main:app --reload`
6161+6262+## Models
6363+6464+### Advertisement
6565+6666+| Field | Description |
6767+|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------|
6868+| **id** | |
6969+| **created_at** | |
7070+| **updated_at** | |
7171+| **title** | |
7272+| **description** | |
7373+| **active** | Whether the ad has been activated yet by user, proving they're alive by navigating to their ad management page via unique token param. |
7474+| **owner_email** | To send to only, never to show on the site. |
7575+| **owner_token** | So that there's a way for the OP to manage the ad after posting. |
7676+