Skip to content
deby edited this page Apr 27, 2018 · 8 revisions

MagiCircles

MagiCircles

More and more video games re-use the concept of collectibles: targetting hardcore gamers, but also casual players! Catch all the pokémon, collect all the cards, finish all the quests, etc. Players spend hundreds of dollars each months trying to gather these precious in-game items.

Example of casual games

But very often, especially on mobile platforms, the items you collect are invisible to anyone but you, and there's no in-game mechanism to see your friends' or share your collections.

Example of advanced games

MagiCircles is an external solution for players who want to see all the in-game items they could get, keep track of their progress and collections, and easily share them with fellow players.

It's the most powerful, perfect hybrid of a database and a social network.

Databases made social.

Its core features are:

  • Collections: a powerful way to link a database table and its views item/list/add/edit
  • A full-featured social network: activities, likes, comments, notifications, ...
  • Customizable profiles
  • Many pages provided by default: map, wiki, ...
  • A default layout made with Bootstrap
  • Very few lines of code required to get a full featured website
  • Highly customizable to fit your needs
  • Translated in many languages

Technologies

Do you need to know all these technologies before using MagiCircles?

No!

Basic knowledge of Python helps.

The MagiCircles framework is based on Django, but it overrides most of its basic concepts such as views and routers. For this reason, it's recommended to dive straight into the MagiCircles documentation without taking the time to learn Django. Knowing Django models can also help, but you can learn as you learn MagiCircles.

No knowledge of Javascript and CSS are required.

It's open source and open for contributions.

⚠️ If you plan to create your own website using MagiCircles, you might want to know that you won't be able to monetize it, and it's probably easier for you if you join Circles.

Core concepts summary

On MagiCircles, everything is centered around the concept of "collections".

A collection is a way to represent everything that can be done around items (a card, an idol, an event, etc). It includes any setting to customize that collection, and all the views you will need to manipulate them: listing, viewing, editing, etc.

In programming terms, our usage of the term "collection" is similar to the term "CRUD".

Most default pages actually use collections, and the standalone pages that don't are very rare on a MagiCircles based website.

Let's take some examples:

When you visit the homepage, you will see the latest activities that the users posted.
→ Well, you're actually viewing the list view of the activities collection.
Want to see the profile of a friend?

→Well, you're actually viewing the item view of the users collection.
Checking out your position in the leaderboard?

→Well, you're actually viewing the list view of the accounts collection.
See something suspicious and want to report it?

Well, you're view the add view of the reports collection.

See? It's quite surprising all the things you can do with this concept!

With that in mind, here is the basic vocabulary you'll see around the documentation:

  • A model is a python object (read more about "objects" and "classes" in programming if you're not familiar with it) that maps the content of a table in a database. Each kind of item (cards, events, etc) will have a model.
  • A MagiModel is a class that you can configure to define what will be in the item (for example in a card you will have rarity, an attribute, an idol, etc). You can then perform queries to retrieve one or multiple model(s).
    • Example: Card model contains field rarity and id:
      • Get the card with id 12: card = Card.objects.get(id=12)
      • Get all the UR cards: cards = Card.objects.filter(rarity='UR')
  • A MagiCollection is a class that contains all the settings of a collection: title, which model to use, who has permissions to see it, etc.
  • MagiCollection classes have 4 views:
    • ListView ("see the list of all cards")
    • ItemView ("view the details of a specific card")
    • AddView ("add a new card")
    • EditView ("modify an existing card")
  • You can configure these views settings as well (how many items).

Get started

→ Contributing to an existing website?

Check out the Local setup guide to follow instructions to set up a local working environment. After that, start reading the tutorials.

→ Starting your own website with MagiCircles?

Join Circles (or learn about restrictions if you don't).

I. Introduction

II. Tutorials

  1. Collections
    1. MagiModel
    2. MagiCollection
    3. MagiForm
    4. MagiFiltersForm
    5. MagiFields
  2. Single pages
  3. Configuring the navbar

III. References

IV. Utils

V. Advanced tutorials

VI. More

Clone this wiki locally