Git Product home page Git Product logo

free_notes's Introduction

Welcome to Free Notes (v1.3.0)

Free Notes is a web application to create dynamic free notes, written in Python and built on Aurora framework.

It is an MVC web application based on REST architecture.

It uses Vanilla JavaScript for the front-end development.

You can find all the dependencies for this project at the end of this file.

Please note that this project is created for testing the functionality of the Aurora framework. You can find a detailed documentation for aurora framework on Aurora Docs.

Features And Specifications

  • Free Notes is a responsive, mobile-first web application.
  • It is a multi-user web application, with a Login/Register system.
  • Users can create dynamic notes using a WYSIWYG HTML editor.
  • Users can manage all their notes and perform some actions to them.
  • Users can edit and delete their notes.
  • Each user can only access to their own notes.
  • It uses SQLite database for managing the application data.
  • It is a RESTFUL web application.
  • It uses JavaScript to send forms to the server.
  • It uses a CSRF token for forms to protect against CSRF attacks.

Project Files

Apps

In addition to the errors app and aurora app that comes with the Aurora framework, It has two other apps:

  • users: For login, register and logout the users.
  • notes - For create, update and delete notes for the users.

App Components:

Controllers

The controllers directory contains all the controllers for all the apps. Each app has its own subdirectory that contains all the controller classes of that application.

Each controller class can provide up to four RESTFUL CRUD methods:

CRUD Methods HTTP Methods Controller Methods
Create POST post
Read GET get
Update PUT put
Delete DELETE delete

Forms

For forms I have used only the CSRF attribute of WTForms, and have validated forms via python code.

Database Initialization

To initialize the database run the following command:

(venv) python manage.py init-db 

Models

This application uses two models:

  • Users - Which is responsible to manipulate the users table of the database.
  • Notes - Which is responsible to manipulate the notes table of the database.

These models are AuroraSQL models.

Static Files

Each application has its own static files inside the statics directory.

There is also a subdirectory called assets which is used for all the apps.

View Files

Each application has its own view files inside the views directory.

Each view file is an HTML like Jinja2 template.

Modules

  • _apps.py is a system module from Aurora framework that contains a python collection of all installed apps.
  • app.py module is used for instantiate the root app of Aurora framework, to serve all the child apps and run the server.
  • config.py is the configuration module for the whole project.
  • manage.py module is the CLI application of Aurora framework.
  • app.db is the SQLite database file created by Aurora framework.

Project Dependecies

Front-End

Backend-End

free_notes's People

Contributors

heminsatya avatar

Stargazers

Artin Zafari avatar Sirwan S.Ali avatar

Watchers

 avatar  avatar

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.