-
Notifications
You must be signed in to change notification settings - Fork 11
Home
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.
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.
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.
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
- Based on Django
- Uses: Django-Rest-Framework, Tinyfy, Bootstrap, jQuery, Bower
- And more, see
requirements.txt
andsample_project/bower.json
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.
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 fieldrarity
andid
:- Get the card with id 12:
card = Card.objects.get(id=12)
- Get all the UR cards:
cards = Card.objects.filter(rarity='UR')
- Get the card with id 12:
- Example:
- 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).
Check out the Local setup guide to follow instructions to set up a local working environment. After that, start reading the tutorials.
Join Circles (or learn about restrictions if you don't).
I. Introduction
II. Tutorials
III. References
- Files tree
- Default collections
- Default pages
- Website settings
- MagiCollection settings
- Abstract models
- Abstract collections
- MagiForm settings
- MagiFiltersForm settings
- Single pages settings
IV. Utils
-
MagiModel utils
- MagiModel images and files
- DateTime fields
- BaseAccount model
- Save choices values as integer rather than strings
- Store comma separated values
- Store dictionaries
- Store Markdown texts
- Translate fields values in multiple languages
- Store JSON
- More model field types
- Transform images before saving them
- Check choices at form level instead of model level
- Use an internal cache for foreign keys in models
- Customize views with MagiModel properties
- Events
- Form utils
- Python utils
- Templates utils
- Javascript utils
- Enable and disable existing collections and pages
- Translations
- Page titles and descriptions
- Characters
- Seasons
- Roles and permissions
- Allow your staff team to change configurations
- Custom users preferences and settings
- Background illustrations
- Activities tabs
- Corner popups
VI. More