A curated list of applications specifications and implementations to practice new technologies, improve your portfolio and sharpen your skills.
โก | Beginner | Intermediate | Advanced |
---|---|---|---|
Backend | 1 | 0 | 0 |
Frontend | 1 | 0 | 0 |
FullStack | 0 | 0 | 0 |
Build software is similar to build a house, it takes careful planning and precise information architecture before you can hammer that first nail, or, in this case, punch up that first string of code.
We always need to be clear about what we want to achieve. Otherwise, we'll never know if we reached our goals.
Specifications are very important for several reasons:
- Understanding project requirements
- Developing a project scope
- Estimating project time-frame and pricing
- Creating a workable reference for development and design
Furthermore, practicing deliberately by building real projects is the unique best way to achieve mastery in this field. With all these specs and other resources, you will be able to do it in a smooth way.
Our intention is to provide professional specifications that are agnostic, i.e, can be implemented using any programming language/stack.
Sometimes is difficulty to think in a cool project to implent with the intention to validade some idea or new skill. With app-specs you'll be able to find lots of awesome specs and their respective implementations!
We divided the project into three categories:
We simplified the division by offering just three categories, but each category will have more responsibilities:
-
Frontend: will take care of the Design, HTML, CSS and JavaScript related to the client-side application.
ps: The Frontend Engineer should also try to deploy the application using GtiHub pages, for example. You need that your app be available for a live demo!
-
Backend: will take care of the server side application, database development, database administration and DevOps.
-
Fullstack: will take care of the Frontend and Backend respective tasks.
Each category has three levels of difficulty, that are beginner
, intermediate
and advanced
. Inside these levels folders you'll find the specifications for different projects.
In these specification files, you will see all the functionalities that are expected that your software has.
You should break these functionalities in sprints, using your preferred agile methodology.
After finish your implementation, fork and send a pull request to us linking your resolution in the respective specification file, in the section Implementations.
We also highly recommend that you register your progress while developing the project, so after finish all implementations you can write an article to explain how you make your app.
Imagine how much knowledge we can generate/share following all these steps!!! ๐
- Choose and read the specification of a project that you want to implement.
- Plan your sprints based on the functionalities that your app must have.
- Start to implement the functionalities.
- Register your progress.
- After completing the implementation, create an article explaining all the process.
- Fork our repository and submit the link of your implementation and others relevant informations.
You can help us in several ways! Some suggestions:
- Create a new specification. Use our spec model. You should consider to start with a MVP (beginner) application, and after create other specification with more complex functionalities.
- Implement an application based on one of our specs. Use our App README model as the README file of your project.
- Choose an existing specification and add more functionalities to it, making this more complex, replicating this specification in the intermediate or advanced folder.
- Choose a frontend spec and create its respective backend spec.
- Choose a backend spec and create its respective frontend spec.
- Choose a backend and frontend specs and create its respective fullstack spec.
- Translate a spec to your native language. All the translations should be created inside the
i18n
folder in the respectivecategory/level
folder. The name of the file should first contain the acronyms that refer to the target language, and after the original name of the app/file.- Ex:
backend/advanced/i18n/PT-BR-social-network.md
- Ex:
- Suggest new ideas for the project on the issues.