Code Monkey home page Code Monkey logo

easy-school's Introduction

Easy School

All Contributors

This is a school management system that uses Django Admin to do most of the work of managing students, fee submissions, teacher records etc..

Setting up Easy School is very easy.

Want to Use?

You can clone this branch and use it right now using any of the methods mentioned below

Building

It is best to use the python virtualenv tool to build locally:

> virtualenv venv
> source venv/bin/activate
> git clone https://github.com/ZeroCoolHacker/easy-school .

Then you navigate to the base directory of the project and install the requirements in your virtual environment

> cd easy-school/easy-school
> pip install -r requirements.txt

And finally you make migrations to the database, create a super user, and run the server

> python manage.py makemigrations
> python manage.py migrate
> python manage.py createsuperuser
> python manage.py runserver

Then visit http://localhost:8000 to view the app. Alternatively you can use foreman and gunicorn to run the server locally

> foreman start

Building with Docker

First run docker-compose to build the container:

docker-compose build

Then, run the following command to create the superuser:

docker-compose run web python manage.py createsuperuser

Finally, the Docker container can be launched with the following command:

docker-compose up

The server should be responding at 127.0.0.1:8000

Contributing

Just follow the steps above to setup your environment. Read the Contribution Guide If you have any more questions you can join the gitter room Gitter

To do

  • Manage Students Record in admin
  • Submit fees in admin
  • Show last submitted fee along with students
  • Link Students to different Courses
  • Search the record by various fields
  • Minimize the number of queries for each view
  • Add Teachers Record to admin
  • Add Teachers Salary Record to admin
  • Export Data in csv format from admin
  • Add graph comparing teacher salaries given vs student's fee collected

Licensing

This Project is Licensed under GLWTPL

Contributors โœจ

Thanks goes to these wonderful people (emoji key):


ali madihi bidgoli

๐Ÿ’ป

mmoomocow

๐Ÿ› ๐Ÿ’ป

davidkarabas

๐Ÿ’ป

adamzavacky

๐ŸŽจ ๐Ÿ’ป

Julian van Doorn

๐Ÿ’ป

Mohan Chhabaria

๐ŸŽจ ๐Ÿ’ป

This project follows the all-contributors specification. Contributions of any kind welcome!

easy-school's People

Contributors

adamzavacky avatar allcontributors[bot] avatar davidkarabas avatar dependabot[bot] avatar ismailuddin avatar jvdoorn avatar marosmola avatar mmoomocow avatar mohanchhabaria avatar mrunderline avatar zerocoolhacker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easy-school's Issues

Add a FeeType Model

This model would have different Fee Types such as hostel fee, bus fee etc.
it would have

  • Name
  • Amount

Add User form along with teacher form in admin

Right not the user has to be selected or added by clicking on the add button. The first_name, last_name fields should be displayed in admin and username and password should be set to cnic(social security number)

BaseConnectionHandler.all() Error

When i try and use the system it says
BaseConnectionHandler.all() got an unexpected keyword argument 'initialized_only'

Environment:

Request Method: GET
Request URL: http://localhost:8000/

Django Version: 3.2
Python Version: 3.10.11
Installed Applications:
['admin_interface',
'colorfield',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'students.apps.StudentsConfig',
'course.apps.CourseConfig',
'debug_toolbar',
'teachers.apps.TeachersConfig',
'django.contrib.humanize']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware']

Traceback (most recent call last):
File "C:\Users\J.Akester\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\J.Akester\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\debug_toolbar\middleware.py", line 55, in call
panel.enable_instrumentation()
File "C:\Users\J.Akester\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\debug_toolbar\panels\cache.py", line 194, in enable_instrumentation
for cache in caches.all(initialized_only=True):

Exception Type: TypeError at /
Exception Value: BaseConnectionHandler.all() got an unexpected keyword argument 'initialized_only'

Add a FeeGroup Model

This will have a list of different FeeType objects that will constitute a group.
For example if i have a group called "Primary Fee", it may hold tuition fee:500, hostelfee:300 etc
it would have the fields

  • Name (str)
  • FeeTypes (OneToMany)

Add a light dashboard to django admin

Right now the django admin only displays the app lists and the data tables
It should show some kind of graphs or summary of the fee submitted in a timespan.

Can not calculate percentage

in students/admin.py i need to calculate the percentage value for each bar in bar graph. I can't figure out the formula.

Should the total field be in FeeGroup model?

Should the total amount field be in FeeGroup model? And may be it will be automatically loaded into the StudentFeeAdd form rather than calculating it there while submission.

Create Guardian Model

Currently we are using custom fields in the student model itself. which has father_name, father_cnic etc fields.
There should be a guardian model having following fields

  • Name
  • Gender
  • Relation to student
  • Social Security Number
  • Phone Number
  • Profession

Upgrade Django

Upgrade django to the latest version of 4.2 and python 3.12

Display profit per month

We need a way to display profit per month.
It can be as simple as total_profit_in_x_month = total_fee_collected_in_x_month - total_salary_given_in_x_month.
We can use graph or just a comparison table. anything. We need this feature in the first release.

Errror

The Easy School project It Throws An Error of (cannot import name 'ugettext_lazy' from 'django.utils.translation') like This So I Request You To to Resolve This issue.
Of upgrade installing commands in requirements.txt

Configure Docker

Add the necessary configuration files to make it a docker setup.

Add Date Range in StudentFee model

The cashier should be able to decide a range for which the student is submitting the fee.
Like a membership program that ends when the period ends

Do Quality Assurance

Do QA before releasing 1.0

  • All Functional Requirements work
  • PIP requirements are clear
  • Runs with DOCKER

Syntax Warning When makemigrations is run

$ python manage.py makemigrations
C:\code\easy-school\students\forms.py:22: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  if len(qs) is not 0:
Migrations for 'students':
  students\migrations\0025_auto_20200402_0743.py
    - Alter field valid_until on studentfee

the fix is clearly in the warning though.

Nice project!

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.