drewrobles / fyrepage Goto Github PK
View Code? Open in Web Editor NEWA website for your links
Home Page: https://fyre.page
A website for your links
Home Page: https://fyre.page
On google sign in button click the users should be taken to a Google form that collects their profile picture, link button labels, links, and display name
Goal is to recreate linktree functionality. User should be able to edit their profile using the webpage
Manage profile page should be able to reorder button links but does not affect backend just yet
https://www.figma.com/file/eFIiK1IX3B1RYcukfOzWJ7/FyrePage?node-id=0%3A1
Only web components no UI functionality yet
Design: https://www.figma.com/file/eFIiK1IX3B1RYcukfOzWJ7/FyrePage?node-id=0%3A1
Admin task
Create an API endpoint that edits a Profile
bio by sending a POST
request to http://localhost:8000/v1/bio
with the following request body {"bio": "my awesome bio!"}
Helpful references:
FyrePage/backend/api/
: tests.py
, urls.py
, views.py
, models.py
https://www.djangoproject.com/
, https://www.django-rest-framework.org/
Topics you will want to research in the documentation:
(https://docs.djangoproject.com/en/3.2/topics/testing/overview/)
https://www.django-rest-framework.org/api-guide/testing/
(https://docs.djangoproject.com/en/3.2/topics/db/models/)
(https://www.django-rest-framework.org/api-guide/views/#function-based-views)
(https://docs.djangoproject.com/en/3.2/topics/db/queries/)
HMU if you need any help! :-)
Every reference to .png should be changed to .jpeg because that's the default format of what I get from social media profiles
Should include all different types of links:
Clicking on landing page button requires you to have special access to use Google Forms. Should be accessible to everyone
It's messed up
Can literally just be a javascript form if you want https://www.w3schools.com/js/tryit.asp?filename=tryjs_prompt
Figma design: https://www.figma.com/file/eFIiK1IX3B1RYcukfOzWJ7/FyrePage?node-id=473%3A154
The page compiler will be an essential part of this application. It will be thing that will control the dynamic aspect of our pages. There are many things that I want to include in this, but the main purpose of this is flexibility. Because we will be going up against some tough competition, we are going to need something that will expand to the moon and beyond.
Due to the sheer amount of customization that I want to be able to provide to the user, I have come up with a concept for a way too easily and efficiently compile data into fully functioning pages. The Idea is that we take all of the data from the database or storage medium, and we give it to the compiler will take it and figure out how everything can be styled, how everything needs to be laid out, what will not work and what will work, if user provided API endpoints do or do not work and weather or not the template query will or will not work, and the list goes on. This will allow us to add 110% custom panels to the page without compromising on performance, readability, or user experience.
After consulting many different applications and websites, I have decided to not just have a simple UI drag-and-drop editor, I want to have a profile editor so powerful that both a noob and an experienced web designer veteran could come and create an amazing looking page with minimal effort. But it will go one step further.
Because not everybody will understand complex topics such as dynamic page generation, we'll have the editor be fairly simple on the surface, but if you want, you can customize any object on the page with minimal effort and it will simply work. This will allow for ultra-customization to occur even for the simple UI.
Because panels are the most important aspect of the profile page, it is important that we are concise on how we want to approach these. To begin we need to be able to have many different panel types so the idea is that we will have the compiler pull a list of all panel types and their optional and required parameters, and the file where the panel logic is stored. This way we can dynamically generate panels without having to deal with too many unknowns.
Because the panels will be very customizable, you will be able to create fully custom panels which you can add css, markdown, and html to so that you can add your own flair to it. This is very cool because it will allow you to have panels that you would've never been able to have before.
Because this will be ultra customizable, you will be able to completely customize the background AND the foreground. This will require image processing so that you can dynamically change the color scheme of the page depending on what the colors, brightness, and ascents of the background/background image are. This can be done through many different methods, but I am going to go the route of mathematically calculating these style attributes.
Because this will completely run off of JSON, you should be able to backup, and upload JSON files that can be read as page configs which will be stored within the database. When doing this you can have a file with all of the attributes in the JSON configuration file so that way you can validate these files and throw errors as needed.
Should include all different types of links:
Link to The Andrew Robles podcast
After I sign in using Google auth for the first time, I should be taken to my edit profile page with only my profile picture, name, and username that was determined from my google account.
Even though the repo is called Webby there are still references to the old project name
Create an API endpoint that gets the links info of a Profile
by sending a GET
request to http://localhost:8000/v1/links
and responds with a JSON body that looks like the following example:
{
"links": [
{
"label": "Check out my twitter!",
"link": "https://twitter.com/stephencurry",
"order": 1
},
{
"label": "Check out my instagram!",
"link": "https://instagram.com/stephencurry",
"order": 2
},
{
"label": "Check out my snapchat!",
"link": "https://snapchat.com/stephencurry",
"order": 3
}
]
}
You will need to define a Links
model with the following properties:
Write a test that creates link objects in the database then makes an API call and verifies the JSON response is correct.
Helpful references:
FyrePage/backend/api/
: tests.py
, urls.py
, views.py
, models.py
https://www.djangoproject.com/
, https://www.django-rest-framework.org/
Topics you will want to research in the documentation:
(https://docs.djangoproject.com/en/3.2/topics/testing/overview/)
https://www.django-rest-framework.org/api-guide/testing/
(https://docs.djangoproject.com/en/3.2/topics/db/models/)
(https://www.django-rest-framework.org/api-guide/views/#function-based-views)
(https://docs.djangoproject.com/en/3.2/topics/db/queries/)
HMU if you have any questions or need any help! :-)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.