Giter Site home page Giter Site logo

fyrepage's People

Contributors

drewrobles avatar holopanio avatar

Watchers

 avatar  avatar  avatar

fyrepage's Issues

Edit bio API endpoint

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:

  • Files: FyrePage/backend/api/: tests.py, urls.py, views.py, models.py
  • Documentation: https://www.djangoproject.com/, https://www.django-rest-framework.org/

Topics you will want to research in the documentation:

  • Writing tests using Django Web (https://docs.djangoproject.com/en/3.2/topics/testing/overview/)
  • Writing tests using Django REST https://www.django-rest-framework.org/api-guide/testing/
  • Defining a model (https://docs.djangoproject.com/en/3.2/topics/db/models/)
  • Creating an API endpoint (https://www.django-rest-framework.org/api-guide/views/#function-based-views)
  • Making Queries (https://docs.djangoproject.com/en/3.2/topics/db/queries/)

HMU if you need any help! :-)

Change .png to .jpeg

Every reference to .png should be changed to .jpeg because that's the default format of what I get from social media profiles

Create link editor mockups

Should include all different types of links:

  • Icon
  • Spotify episode
  • Discord
  • Spotify track
  • Youtube
  • Button

Google Forms not working

Clicking on landing page button requires you to have special access to use Google Forms. Should be accessible to everyone

Create Page Compiler

Page Compiler

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.

Concept

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.

Customization

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.

Panels and Panel Types

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.

Styling And Color Schemes

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.

Completely custom JSON.

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.

Link editor components

Should include all different types of links:

  • Icon
  • Spotify episode
  • Discord
  • Spotify track
  • Youtube
  • Button
  • Popup in front of content

Authentication

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.

Get links API endpoint

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
      }
    ]

}
  1. You will need to define a Links model with the following properties:
    Screenshot from 2021-05-07 06-16-22

  2. Write a test that creates link objects in the database then makes an API call and verifies the JSON response is correct.

Helpful references:

  • Files in FyrePage/backend/api/: tests.py, urls.py, views.py, models.py
  • Documentation: https://www.djangoproject.com/, https://www.django-rest-framework.org/

Topics you will want to research in the documentation:

  • Writing tests using Django Web (https://docs.djangoproject.com/en/3.2/topics/testing/overview/)
  • Writing tests using Django REST https://www.django-rest-framework.org/api-guide/testing/
  • Defining a model (https://docs.djangoproject.com/en/3.2/topics/db/models/)
  • Creating an API endpoint (https://www.django-rest-framework.org/api-guide/views/#function-based-views)
  • Making Queries (https://docs.djangoproject.com/en/3.2/topics/db/queries/)

HMU if you have any questions or need any help! :-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.